为什么你需要一个哈希表
从一个问题说起
假设你有一个存了 100 万个用户的数组,现在要查找用户「张三」。
用数组挨个遍历,最坏要比较 100 万次。这效率,甲方看了都要沉默。
哈希表说:给我一次,就一次。
核心思想
哈希表 = 数组 + 哈希函数
1 | |
- 把 key 扔进哈希函数,算出一个下标
- 直接跳到数组对应位置取值
- 不比较、不遍历,一步到位
理想 vs 现实
理想情况:查找 O(1)
现实:哈希冲突 —— 两个 key 算出同一个下标。
- 解决办法(知道名字就行):
- 链地址法:冲突的位置挂一条链表
- 开放寻址法:换个空位继续放
1 | |
常见场景
| 场景 | 为什么用哈希表 |
|---|---|
| 统计词频 | key 是单词,value 是次数 |
| 缓存(Cache) | 快速判断数据是否存在 |
| 两数之和(LeetCode 1) | 边遍历边查”另一半” |
一句话总结
用空间换时间:数组管”存得下”,哈希函数管”找得快”。
为什么你需要一个哈希表
https://www.8822888.xyz/2026/09/15/为什么你需要一个哈希表/