LeetCode 3Sum

题意:
一组数,找出所有的三个数的情况,满足 三个数相加为0

思路:
排序后,一段固定在最大的数,另一端从最小的数开始,先求和,比0大就向递增方向找下一个数,求和看是否为0
这样依次找一遍,再排除重复的情况即可。(情况太多太复杂了?)

更新思路:
看了下一题3Sum Closest 题解,发现昨天的理解不对。
求和这个题一共有四个类型,第一个是最简单的2Sum,两个数的和是目标值,很简单,就两个指针,遍历。
基于2Sum,3Sum可变为,先排序,很多题解中说“固定一个数”,刚开始没理解是固定哪个数,结合2Sum,可得出:将排序后的数组,从头开始,依次即为固定的数,例如,第一次固定arr[0],然后两个指针从arr[1],和arr[length-1]开始,类似2Sum求和检验。

你可能感兴趣的:(LeetCode)