Q: Given an array nums of n integers, are there elements a , b , c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.
Note:
The solution set must not contain duplicate triplets.
Example: Given array nums = [-1, 0, 1, 2, -1, -4],
A solution set is: [ [-1, 0, 1], [-1, -1, 2] ]
A: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 var threeSum = function (nums ) { nums.sort((a, b ) => a - b) let ans = [] let len = nums.length for (let i = 0 ; i < len; i++ ) { if (i && nums[i] === nums[i - 1 ]) continue let target = -nums[i] let [start, end] = [i + 1 , len - 1 ] while (start < end) { let sum = nums[start] + nums[end] if (sum > target) { end-- } else if (sum < target) { start++ } else { ans.push([nums[i], nums[start], nums[end]]) while (nums[start] === nums[start + 1 ]) start++ start++ while (nums[end] === nums[end - 1 ]) end-- end-- } } } return ans }