3
3
* @return {number[][] }
4
4
*/
5
5
const threeSum = ( nums ) => {
6
-
7
6
let result = [ ] ;
7
+ nums . sort ( ( a , b ) => a - b ) ;
8
+ console . log ( nums )
9
+
8
10
for ( let i = 0 ; i < nums . length ; i ++ ) {
11
+ if ( undefined !== nums [ i - 1 ] && nums [ i - 1 ] === nums [ i ] ) {
12
+ console . log ( "-------------------> !!!! same as prev" )
13
+ console . log ( nums [ i - 1 ] )
14
+ console . log ( nums [ i ] )
15
+ continue ;
16
+ }
17
+
9
18
let tmpList = [ ...nums ] ;
10
- // , tmpMap = {};
11
19
tmpList . splice ( i , 1 ) ;
12
20
13
21
let b = ( 0 === nums [ i ] ) ? 0 : - nums [ i ] ;
14
22
let c = nums [ i ] + b ;
15
23
console . log ( `i: ${ i } , nums[i]: ${ nums [ i ] } , b: ${ b } , c: ${ c } ` ) ;
24
+ console . log ( "tmpList" )
16
25
console . log ( tmpList )
17
26
18
27
// // Build a hash map except the current item in order to find the other 2 group mates.
@@ -24,9 +33,9 @@ const threeSum = (nums) => {
24
33
result = findGroup ( Math . min ( ...nums ) , Math . max ( ...nums ) , nums [ i ] , b , c , tmpList , result ) ;
25
34
}
26
35
27
- // console.log("result")
28
- // console.log(result)
29
- console . log ( removeDuplicates ( result ) )
36
+ console . log ( "result" )
37
+ console . log ( result )
38
+ // console.log(removeDuplicates(result))
30
39
// console.log([...new Set(result.map(JSON.stringify))].map(JSON.parse));
31
40
32
41
return removeDuplicates ( result ) ;
@@ -103,5 +112,5 @@ const findGroup = (min, max, a, b, c, list, result) => {
103
112
104
113
}
105
114
106
- threeSum ( [ 0 , 0 , 0 ] )
107
- // threeSum([-1,0,1,2, -1,-4])
115
+ // threeSum([0, 0, 0])
116
+ threeSum ( [ - 1 , 0 , 1 , 2 , - 1 , - 4 ] )
0 commit comments