/** * @param {number[]} nums * @return {number[][]} * [-4,-1,-1,0,1,2] */var threeSum = function (nums) { const list = [] if (nums.length < 3) return [] nums.sort((a, b) => a - b) for (let i = 0; i < nums.length; i++) { if(nums[i] ===nums[i - 1]) { continue } let left = i + 1, right = nums.length - 1 while (right > left) { if (right === i) { right-- } else if (nums[left] + nums[right] + nums[i] === 0) { list.push([nums[left], nums[right], nums[i]]) while (nums[left] === nums[left + 1]) { left++ } left++ while (nums[right] === nums[right + 1]) { right-- } right-- } else if (nums[left] + nums[right] + nums[i] < 0) { left++ } else { right-- } } } return list};