两类查找问题:
-
查找有无:
元素a是否存在? --- 使用set(集合)
-
查找对应关系(键值对应):
元素a出现了几次? --- 使用map(字典)
[leetcode-349 两个数组的交集]( "leetcode-349 两个数组的交集")
[leetcode-350 两个数组的交集II]( "leetcode-350 两个数组的交集II")
哈希表的缺点是 失去了数据的顺序性
C++,map和set的底层实现为平衡二叉树,
unordered_map和unordered_set的底层实现为哈希表
leetcode-242 有效的字母异位词[1]
[leetcode-202 快乐数]( "leetcode-202 快乐数")
[leetcode-290 单词规律]( "leetcode-290 单词规律")
[leetcode-205 同构字符串]( "leetcode-205 同构字符串")
[leetcode-451 根据字符出现频率排序]( "leetcode-451 根据字符出现频率排序")
leetcode-1 两数之和[2]
[leetcode-15 三数之和]( "leetcode-15 三数之和")
[leetcode-16 最接近的三数之和]( "leetcode-16 最接近的三数之和")
[leetcode-454 四数相加II]( "leetcode-454 四数相加II")
[leetcode-49 字母异位词分组]( "leetcode-49 字母异位词分组")
[leetcode-447 回旋镖的数量]( "leetcode-447 回旋镖的数量")
[leetcode-149 直线上最多的点数]( "leetcode-149 直线上最多的点数")
滑动窗口+查找表
[leetcode-219 存在重复元素II]( "leetcode-219 存在重复元素II")
[leetcode-217 存在重复元素]( "leetcode-217 存在重复元素")
[leetcode-220 存在重复元素III]( "leetcode-220 存在重复元素III")
参考资料
leetcode-242 有效的字母异位词: https://dashen.tech/2015/03/01/leetcode-242-%E6%9C%89%E6%95%88%E7%9A%84%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D/
[2]leetcode-1 两数之和: https://dashen.tech/2015/03/01/leetcode-1-%E4%B8%A4%E6%95%B0%E4%B9%8B%E5%92%8C/
本文由 mdnice 多平台发布