查找问题汇集

本文探讨了在LeetCode问题中,如何运用查找有无的set和查找对应关系的map数据结构,以及哈希表(unordered_map和unordered_set)的使用。重点关注了与滑动窗口和重复元素检测相关的题目,如两数之和系列问题和字母异位词分组等。

两类查找问题:

  • 查找有无:

元素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")

参考资料

[1]

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 多平台发布

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值