LeetCode地址
算法难度
中等
JS代码
/**
* @param {number[]} nums
* @return {number[][]}
*/
var threeSum = function(nums) {
nums = nums.sort((a, b) => a - b)
let len = nums.length
let res = []
for (let m = 0; m < len - 2 && nums[m] <= 0; m++) {
let l = m + 1
let r = len - 1
if (m > 0 && nums[m] === nums[m-1]) continue
while(l < r) {
if (nums[m] + nums[l] + nums[r] === 0) {
res.push([nums[m], nums[l], nums[r]])
while(l < r && nums[l] === nums[l + 1]) {
l++
}
while(l < r && nums[r] === nums[r - 1]) {
r--
}
l++
r--
} else if (nums[m] + nums[l] + nums[r] > 0) {
r--
} else {
l++
}
}
}
return res
};