https://leetcode.cn/problems/3sum/description/?envType=study-plan-v2&envId=top-100-liked
/** * @param {number[]} nums * @return {number[][]} */ var threeSum = function (nums) { let res = []; if (nums.length < 3) return res; 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 (left < right) { const sum = nums[i] + nums[left] + nums[right]; if (sum === 0) { res.push([nums[i], nums[left], nums[right]]); while (nums[left] === nums[left + 1]) { left++; } left++; while (nums[right] === nums[right - 1]) { right--; } right--; } else if (sum > 0) { right--; } else if (sum < 0) { left++; } } } return res; };
原创文章,作者:czhdawn,如若转载,请注明出处:https://www.czhdawn.cn/archives/4880