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 99 * 시간 복잡도: O(n^2)
1010 * 공간 복잡도: O(K + kLogK) (K: 결과 배열의 크기, kLogK: 정렬 공간)
1111 */
12+ /**
13+ * @param {number[] } nums
14+ * @return {number[][] }
15+ */
1216var 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+ } ;
You can’t perform that action at this time.
0 commit comments