三数之和
threeSum(nums){
nums = nums.sort((a,b) => {
return a-b;
}); // 先排序
let i = 0;
let arr = []; // 结果数组
while(i < nums.length - 1){
let a = nums[i],
j = i + 1,
k = nums.length - 1;
while(j < k){
let b = nums[j],
c = nums[k];
let sum = a + b + c;
if(sum === 0)
arr.push([a, b, c]); // 存起来
if(sum <= 0){
while(nums[j] === b && j < k)
j++; // 第二个数
}
if(sum >= 0){
while(nums[k] === c && j < k)
k--; // 最后一个数
}
}
while(nums[i] === a && i < nums.length - 1)
i++; // 第一个数
}
return arr;
}, 
京公网安备 11010502036488号