Skip to content

Commit e52f5f9

Browse files
committed
feat: solve 3sum
1 parent c487499 commit e52f5f9

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

3sum/sujeong-dev.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number[][]}
4+
*
5+
* 시간복잡도: 이중 for문으로 O(n^2)이긴한데 너무 오래걸림
6+
* 해설 확인해보기
7+
*/
8+
var threeSum = function (nums) {
9+
if (nums.every((num) => num === 0)) return [nums.slice(0, 3)];
10+
11+
const threeSet = new Set();
12+
for (let i = 0; i < nums.length - 2; i++) {
13+
const twoSet = new Set();
14+
for (let j = i + 1; j < nums.length; j++) {
15+
const findNum = -(nums[i] + nums[j]);
16+
if (twoSet.has(findNum)) {
17+
const triplet = [nums[i], nums[j], findNum].sort((a, b) => a - b);
18+
threeSet.add(triplet.join(','));
19+
}
20+
twoSet.add(nums[j]);
21+
}
22+
}
23+
return Array.from(threeSet, (k) => k.split(',').map(Number));
24+
};

0 commit comments

Comments
 (0)