File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed
Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * 문제: https://leetcode.com/problems/3sum/description/
3+ *
4+ * 요구사항:
5+ * nums: number[]가 주어질 때
6+ *
7+ * * */
8+
9+ const threeSum = ( nums ) => {
10+ let result = [ ] ;
11+
12+ nums . sort ( ( a , b ) => a - b ) ;
13+
14+ for ( let i = 0 ; i < nums . length - 2 ; i ++ ) {
15+ if ( i > 0 && nums [ i ] === nums [ i - 1 ] ) continue ;
16+
17+ if ( nums [ i ] > 0 ) break ;
18+
19+ let left = i + 1 ;
20+ let right = nums . length - 1 ;
21+
22+ while ( left < right ) {
23+ let sum = nums [ i ] + nums [ left ] + nums [ right ] ;
24+
25+ if ( sum === 0 ) {
26+ result . push ( [ nums [ i ] , nums [ left ] , nums [ right ] ] ) ;
27+
28+ while ( left < right && nums [ left ] === nums [ left + 1 ] ) left ++ ;
29+ while ( left < right && nums [ right ] === nums [ right - 1 ] ) right ++ ;
30+ left ++ ;
31+ right -- ;
32+ } else if ( sum < 0 ) {
33+ left ++ ;
34+ } else {
35+ right -- ;
36+ }
37+ }
38+ }
39+ return result ;
40+ }
You can’t perform that action at this time.
0 commit comments