File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number[] } nums
3
+ * @return {number[][] }
4
+ */
5
+ var threeSum = function ( nums ) {
6
+ let res = [ ] ;
7
+ let left = 0 ;
8
+ let right = nums . length - 1 ;
9
+ nums . sort ( ( a , b ) => { return a - b } )
10
+
11
+ for ( let i = 0 ; i < nums . length - 1 ; i ++ ) {
12
+ if ( nums [ i ] > 0 ) return res ;
13
+ if ( nums [ i ] === nums [ i - 1 ] ) continue ;
14
+
15
+ left = i + 1 ;
16
+ right = nums . length - 1 ;
17
+ let temp = 0 ;
18
+
19
+ while ( left < right ) {
20
+ temp = nums [ left ] + nums [ right ] + nums [ i ] ;
21
+ if ( temp === 0 ) {
22
+ res . push ( [ nums [ i ] , nums [ left ] , nums [ right ] ] ) ;
23
+ left ++ ;
24
+ right -- ;
25
+
26
+ while ( nums [ left ] == nums [ left - 1 ] ) { left ++ } ;
27
+
28
+ while ( nums [ right ] == nums [ right - 1 ] ) { right -- } ;
29
+
30
+ } else if ( temp > 0 ) { right -- }
31
+ else if ( temp < 0 ) { left ++ }
32
+ }
33
+ }
34
+ return res ;
35
+ } ;
You can’t perform that action at this time.
0 commit comments