Skip to content

Commit e7d61e3

Browse files
authored
feat: 3sum
1 parent ddb7541 commit e7d61e3

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

3sum/hozzijeong.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number[][]}
4+
*/
5+
var threeSum = function(nums) {
6+
nums.sort((a,b) => a-b);
7+
const length = nums.length;
8+
9+
const answer = [];
10+
11+
12+
for(let i = 0; i < length - 2; i++){
13+
if(i > 0 && nums[i] === nums[i-1]) continue;
14+
if(nums[i] > 0) break;
15+
16+
let left = i + 1;
17+
let right = length -1;
18+
19+
while(left < right){
20+
const result = nums[left]+ nums[right] + nums[i];
21+
22+
if(result > 0) {
23+
right -= 1;
24+
}
25+
26+
if(result < 0) {
27+
left +=1;
28+
}
29+
30+
if(result === 0) {
31+
answer.push([nums[i],nums[left],nums[right]]);
32+
33+
while(left < right && nums[left] === nums[left + 1]) left += 1;
34+
while(left < right && nums[right] === nums[right - 1]) right -=1;
35+
36+
left += 1;
37+
right -= 1;
38+
}
39+
}
40+
41+
42+
}
43+
44+
return answer
45+
};

0 commit comments

Comments
 (0)