哈希表Map, 集合Set
📚 哈希表 Map, 集合 Set
Map 和 Set 的底层结构都是用哈希表来实现。
哈希表,是根据关键码值而直接进行访问的数据结构。通过关键码值映射到表中一个位置来访问记录,以加快查找的速度。
这个映射函数也叫做散列函数,也叫哈希函数,存放记录的数组叫做哈希表。
哈希函数有可能会导致哈希碰撞。
经常用于需要键值对存储的地方
- 电话号码本
- 用户信息表
🏫 经典题目
1. 两数之和(最优解法: 哈希表)
两数之和除了 sort 之后,左右夹逼的解法,最优解法是哈希表,时间复杂度为n
遍历到数字 a 时,用 target - a,就会得到 b,若 b 存在于哈希表中,我们就可以直接返回结果了。若 b 不存在,那么我们需要将 a 存入哈希表,好让后续遍历的数字使用。
1 | var twoSum = function (nums, target) { |
242. 有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
1 | // 数组是一个性能更优的哈希表 |