代码随想录算法训练营第6天(哈希表 & 双指针)| 454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和

 454.四数相加II 

题目链接/文章讲解/视频讲解:代码随想录

        先遍历两个列表,用 hashmap 记录下两数之和,index 是和,value 是个数。再遍历另外两个列表,查找两数之和的相反数是否在 hashmap 中。

        注意:在遍历后两个列表时,如果两数之和的相反数 在hashmap中,count 不是 +1,而是加上 hashmap 里对应 index 的 value,因为是排列组合。

        时间复杂度 O(n^2),空间复杂度 O(n^2)

383. 赎金信  

题目链接/文章讲解:代码随想录

        是 242.有效的字母异位词 的拓展题,同样可以用 hashmap 或 数组来记录第一个字符串中每个元素出现的次数,然后再遍历第二个字符串,逐个检查。

        时间复杂度 O(n),空间复杂度 O(1)。

15. 三数之和

题目链接/文章讲解/视频讲解:代码随想录

        因为去重操作比较复杂,哈希法并不是最有效的。本题采用双指针法。先将列表排序徐,然后遍历列表,每次固定一个元素,用左右指针开始寻找满足条件的组合,根据加和的大小来移动左右指针。注意去重操作。

        时间复杂度 O(n^2),空间复杂度 O(1)。

18. 四数之和

题目链接/文章讲解/视频讲解:代码随想录

        三数之和的拓展。

        时间复杂度 O(n^3),空间复杂度 O(1)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值