代码随想录算法训练营第七天|454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和 总结

详细布置

454.四数相加II

建议:本题是使用map巧妙解决的问题,好好体会一下哈希法如何提高程序执行效率,降低时间复杂度,当然使用哈希法会提高空间复杂度,但一般来说我们都是舍空间换时间,工业开发也是这样。

题目链接/文章讲解/视频讲解:https://programmercarl.com/0454.%E5%9B%9B%E6%95%B0%E7%9B%B8%E5%8A%A0II.html

整体思路:就是有种C22C22在进行匹配选择的感觉,很神奇。

383.赎金信

建议:本题和242.有效的字母异位词是一个思路,算是拓展题

题目链接/文章讲解:https://programmercarl.com/0383.%E8%B5%8E%E9%87%91%E4%BF%A1.html

黄色标注部分不能再忘记了,属于简单却很致命的地方。

15.三数之和

建议:本题虽然和两数之和很像,也能用哈希法,但用哈希法会很麻烦,双指针法才是正解,可以先看视频理解一下双指针法的思路,文章中讲解的没问题,哈希法很麻烦。

题目链接/文章讲解/视频讲解:https://programmercarl.com/0015.%E4%B8%89%E6%95%B0%E4%B9%8B%E5%92%8C.html

注意:(此题要求a+b+c = 0里面的(a, b, c))

1、i元素时遍历了后面的所有可能性,所以后面再出现和i相等的元素时,必然是重复的,所以是判断num[i] == num[i-1]而不是num[i] == num[i+1]

2、当有重复结果时,至少要先收获一个,再去去重,所以去重应该放在收获后面而不是循环的一开始。

3、哦,一开始还有点没弄懂去重是啥,刚又看了一遍视频,明白了一点:

       第1点里面的,是对a进行去重;

第2点是对b和c进行去重,所以有不同的判断式和方法。

18.四数之和

建议:要比较一下,本题和454.四数相加II的区别,为什么454.四数相加II会简单很多,这个想明白了,对本题理解就深刻了。本题思路整体和三数之和一样的,都是双指针,但写的时候有很多小细节,需要注意,建议先看视频。

题目链接/文章讲解/视频讲解:https://programmercarl.com/0018.%E5%9B%9B%E6%95%B0%E4%B9%8B%E5%92%8C.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容