Skip to content

Commit da98888

Browse files
committed
3sum 풀이 추가
1 parent a21cff6 commit da98888

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

3sum/junzero741.ts

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

0 commit comments

Comments
 (0)