三数之和
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; },