Open Zheaoli opened 2 years ago
/*
* @lc app=leetcode id=15 lang=typescript
*
* [15] 3Sum
*/
// @lc code=start
function threeSum(nums: number[]): number[][] {
const ans = [] as number[][];
nums = nums.sort((a, b) => a - b);
for (let i = 0; i < nums.length; i++) {
const firstEl = nums[i];
// eliminate bad case
if (firstEl > 0) {
break;
}
if (firstEl === nums[i - 1]) {
continue;
}
// two sum ii
let left = i + 1;
let right = nums.length - 1;
while (left < right) {
const result = firstEl + nums[left] + nums[right];
if (result > 0) {
right--;
} else if (result < 0) {
left++;
} else {
ans.push([firstEl, nums[left], nums[right]]);
// eliminate the case that next val is equals to prev one
left++;
while (nums[left] === nums[left - 1]) {
left++;
}
}
}
}
return ans;
};
// @lc code=end
微信id: 弘树 来自 vscode 插件
2022-09-12