Algorithm topic

哈希表:模式识别与解题模板

本专题包含 9 道题。先辨认输入结构和目标,再选择能够持续保持关键不变量的算法,而不是只记住某一道题的代码。

高频模式

哈希表9 道题

观察题目是否反复出现“哈希表”对应的数据访问、状态压缩或边界推进特征。

字符串5 道题

观察题目是否反复出现“字符串”对应的数据访问、状态压缩或边界推进特征。

数组4 道题

观察题目是否反复出现“数组”对应的数据访问、状态压缩或边界推进特征。

排序2 道题

观察题目是否反复出现“排序”对应的数据访问、状态压缩或边界推进特征。

计数1 道题

观察题目是否反复出现“计数”对应的数据访问、状态压缩或边界推进特征。

数学1 道题

观察题目是否反复出现“数学”对应的数据访问、状态压缩或边界推进特征。

核心模板

  1. 先写清输入规模、目标值和允许修改的数据。
  2. 定义每一步开始和结束时必须成立的不变量。
  3. 把循环、递归、队列或状态转移拆成可验证事件。
  4. 用最小输入、重复值和退化结构验证边界。

常见错误

  • 只根据样例选择算法,没有核对复杂度上限。
  • 更新多个指针或状态时破坏旧值依赖。
  • 忽略空输入、重复值、断开结构或极端顺序。
  • 代码结果正确,但解释没有说明为什么不会漏解或重复。

代表题

#383 · EASY

赎金信

判断杂志字符能否拼出赎金信,每个字符只能使用一次。

哈希表字符串计数
#205 · EASY

同构字符串

判断两个字符串的字符映射结构是否一致。

哈希表字符串
#290 · EASY

单词规律

判断模式字符与单词是否一一对应。

哈希表字符串
#1 · EASY

两数之和

找出和为 target 的两个数组下标。

数组哈希表
#202 · EASY

快乐数

判断反复把各位平方求和是否最终得到 1。

哈希表数学双指针
#219 · EASY

存在重复元素 II

判断是否存在相同元素且下标距离不超过 k。

数组哈希表滑动窗口
查看本分类全部 9 道题