File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed
Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change 1+ var threeSum = function ( nums ) {
2+ nums . sort ( ( a , b ) => a - b ) ;
3+ const results = [ ] ;
4+ for ( let i = 0 ; i < nums . length - 2 ; i ++ ) {
5+ if ( i > 0 && nums [ i ] === nums [ i - 1 ] ) continue ;
6+ let left = i + 1 ;
7+ let right = nums . length - 1 ;
8+ while ( left < right ) {
9+ const currSum = nums [ i ] + nums [ left ] + nums [ right ] ;
10+
11+ if ( currSum == 0 ) {
12+ results . push ( [ nums [ i ] , nums [ left ] , nums [ right ] ] ) ;
13+ left ++ ;
14+ right -- ;
15+ // to avoid duplicates
16+ while ( left < right && nums [ left ] === nums [ left - 1 ] ) left ++ ;
17+ while ( left < right && nums [ right ] === nums [ right + 1 ] ) right -- ;
18+ } else if ( currSum < 0 ) {
19+ left ++ ;
20+ } else right -- ;
21+ }
22+ }
23+ return results ;
24+ } ;
25+
26+ // Time complexity: O(n^2);
27+ // Space complexity: O(n)
You can’t perform that action at this time.
0 commit comments