File tree Expand file tree Collapse file tree 1 file changed +11
-1
lines changed Expand file tree Collapse file tree 1 file changed +11
-1
lines changed Original file line number Diff line number Diff line change 9
9
* 시간 복잡도: O(n^2)
10
10
* 공간 복잡도: O(K + kLogK) (K: 결과 배열의 크기, kLogK: 정렬 공간)
11
11
*/
12
+ /**
13
+ * @param {number[] } nums
14
+ * @return {number[][] }
15
+ */
12
16
var threeSum = function ( nums ) {
13
17
const arr = [ ] ;
14
18
15
19
// 투포인터를 사용하기 위해 정렬
16
20
nums . sort ( ( a , b ) => a - b ) ;
17
21
18
22
for ( let i = 0 ; i < nums . length - 2 ; i ++ ) {
23
+ // 중복 된 값 스킵
19
24
if ( i > 0 && nums [ i ] === nums [ i - 1 ] ) continue ;
20
25
21
26
let left = i + 1 ;
@@ -26,6 +31,11 @@ var threeSum = function(nums) {
26
31
27
32
if ( sum === 0 ) {
28
33
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
+
29
39
left ++ ;
30
40
right -- ;
31
41
} else if ( sum > 0 ) {
@@ -37,4 +47,4 @@ var threeSum = function(nums) {
37
47
}
38
48
39
49
return arr ;
40
- } ;
50
+ } ;
You can’t perform that action at this time.
0 commit comments