三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请
你返回所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。
const threeSum = (nums = [-1, 0, 1, 2, -1, -4]) => { const res = [] const len = nums.length nums.sort((x, y) => x - y) if (len < 3 || nums[0] > 0) return res for (let i = 0; i < len; i++) { if (i > 0 && nums[i] === nums[i - 1]) continue let l = i + 1, r = len - 1 while (l < r) { let sum = nums[i] + nums[l] + nums[r] if (sum > 0) { r-- } else if (sum < 0) { l++ } else { res.push([nums[i], nums[l], nums[r]]) while (l < r && nums[l] === nums[l + 1]) l++ while (l < r && nums[r] === nums[r - 1]) r-- l++ r-- } } } return res }
以自己现在的努力程度,还没有资格和别人拼天赋