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