Skip to content

哈希

哈希类问题的核心是把“线性查找”降维成“常数时间查找”。在面试里,凡是出现去重、计数、映射、前缀状态匹配,都应该优先想一遍哈希表。它通常与数组、字符串、前缀和一起出现,是最常见的“空间换时间”模型。

识别信号

  • 需要 判断元素是否存在、去重、计数
  • 需要建立”值→下标”或”值→频次”的映射关系
  • 出现”前缀状态是否出现过”(前缀和 + 哈希)

反例:如果需要有序遍历或范围查询,用 TreeMap/排序数组更合适。

怎么处理

  1. 先问自己:是不是需要快速判断某个状态是否出现过。
  2. 再判断 key 存什么,value 存什么,是值、下标、频次还是前缀状态。
  3. 如果题目反复查历史信息,优先考虑哈希,而不是每次重扫。
  4. 如果是工程问题,再补充冲突处理、负载因子、扩容这些底层点。

典型实例

专题关键差异先看什么
哈希表覆盖 Key/Value 设计方法论、底层原理、常见陷阱key/value 设计三问 + HashMap 内部实现

看到什么就先想到这类

  • 出现“去重、频次统计、元素配对”。
  • 出现“某个状态之前是否出现过”。
  • 出现“前缀和 + 某个差值是否存在”。