Skip to content

Commit 28fb39c

Browse files
committed
refactor: 3sum 중복 된 값 추가
1 parent 0bd2073 commit 28fb39c

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

3sum/jangwonyoon.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,18 @@
99
* 시간 복잡도: O(n^2)
1010
* 공간 복잡도: O(K + kLogK) (K: 결과 배열의 크기, kLogK: 정렬 공간)
1111
*/
12+
/**
13+
* @param {number[]} nums
14+
* @return {number[][]}
15+
*/
1216
var threeSum = function(nums) {
1317
const arr = [];
1418

1519
// 투포인터를 사용하기 위해 정렬
1620
nums.sort((a, b) => a - b);
1721

1822
for (let i = 0; i < nums.length - 2; i++) {
23+
// 중복 된 값 스킵
1924
if (i > 0 && nums[i] === nums[i - 1]) continue;
2025

2126
let left = i + 1;
@@ -26,6 +31,11 @@ var threeSum = function(nums) {
2631

2732
if (sum === 0) {
2833
arr.push([nums[i], nums[left], nums[right]]);
34+
35+
// 중복 된 값 스킵
36+
while (left < right && nums[left] === nums[left + 1]) left++;
37+
while (left < right && nums[right] === nums[right - 1]) right--;
38+
2939
left++;
3040
right--;
3141
} else if (sum > 0) {
@@ -37,4 +47,4 @@ var threeSum = function(nums) {
3747
}
3848

3949
return arr;
40-
};
50+
};

0 commit comments

Comments
 (0)