题意:给定一个排序数组(小->大),取数组中的三个元素a,b,c;满足a+b+c=0,a<=b<=c;
举例:A=[-1,-1,-1,0,1,2,3],result=[-1,-1,2],[-1,0,1];
思路:双指针思想+枚举。
当枚举数组的第一个元素时,设置两个指针left,right分别指向数组的第一元素和最后一个元素。
当a[left]+a[right] > (-a[i]),right– (0<=i
(2)去掉重复判断,当a[i-1]==a[i],可以直接跳过第i次循环
代码:
1 |
|