一个hash map(字典)提供O(1) 平均的查找、插入和删除。用 O(n) 的内存换取速度,将许多 O(n²) 的算法转变为 O(n),用即时查找替代重复扫描。
核心思想
不是每次都在列表中搜索,而是将已见的值存储在 hash map 中,以常数时间检查成员资格。
示例:O(n) 的 two-sum
python
():
seen = {}
i, x (nums):
need = target - x
need seen:
(seen[need], i)
seen[x] = i
two_sum([, , , ], )
