LeetCode 15. 3Sum
Description:
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.
分析:
首先,判断数组长度,若小于3,直接返回空二维vector;
将数组按从小到大排序,先确定nums[i]为第一个元素,为了避免重复,如果nums[i]和nums[i-1]相等就continue,然后设定两个变量begin和end,begin指向i+1,end指向n-1;
判断此时sum是否等于0,如果等于0就将结果放入result数组中,且begin++
,end--
,为了避免重复,如果begin++
后的元素依旧和刚才的元素相等,继续begin++
,end同理
如果sum大于0,则end--
;若果sum小于0,就将begin++
;
最后返回result二维数组。
代码如下:
1 |
|