两类查找问题:

  • 查找有无:

元素a是否存在? — 使用set(集合)


  • 查找对应关系(键值对应):

元素a出现了几次? — 使用map(字典)



leetcode-349 两个数组的交集

leetcode-350 两个数组的交集II

哈希表的缺点是 失去了数据的顺序性

C++,map和set的底层实现为平衡二叉树,

unordered_map和unordered_set的底层实现为哈希表

leetcode-242 有效的字母异位词

leetcode-202 快乐数

leetcode-290 单词规律

leetcode-205 同构字符串

leetcode-451 根据字符出现频率排序

leetcode-1 两数之和

leetcode-15 三数之和

leetcode-16 最接近的三数之和

leetcode-454 四数相加II

leetcode-49 字母异位词分组

leetcode-447 回旋镖的数量

leetcode-149 直线上最多的点数



滑动窗口+查找表

leetcode-219 存在重复元素II

leetcode-217 存在重复元素

leetcode-220 存在重复元素III