Skip to main content

15.三数相加/Three Sum

/**
* @param {number[]} nums
* @return {number[][]}
*/
var threeSum = function (nums) {
var result = [];
nums = nums.sort((a,b) => a - b);
for (var i = 0; i < nums.length - 2; i++) {
if (nums[i] !== nums[i - 1]) {
var start = i + 1;
var end = nums.length - 1;
while (start < end) {
if (nums[i] + nums[start] + nums[end] < 0) {
start++;
} else if (nums[i] + nums[start] + nums[end] > 0) {
end--;
} else {
result.push([nums[i], nums[start], nums[end]]);
do{
start++;
}
while(nums[start] === nums[start - 1])

}
}
}
}
return result;
};