-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
91 lines (79 loc) · 2.14 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/**
* @param {number[]} nums
* @return {number[][]}
*/
var threeSum = function(nums) {
let zeroList = [];
let flist = [];
let zlist = [];
nums.map(function(i){
if(i === 0){
zeroList.push(i);
}else if(i < 0){
flist.push(i);
}else{
zlist.push(i);
}
});
let zlen = zlist.length;
let flen = flist.length;
let r = [];
let a = [];
//000
if(zeroList.length >= 3){
r.push([0,0,0]);
}
// f 0 z
if(zeroList.length > 0){
a = [];
for(var i = 0; i < flen; i++){
if(a.indexOf(flist[i]) === -1 && zlist.indexOf(Math.abs(flist[i])) != -1){
a.push(flist[i]);
r.push([flist[i], 0 , -flist[i]]);
}
}
}
// ffz
a = [];
for(var i = 0; i < zlen; i++){
if(a.indexOf(zlist[i]) === -1){
a.push(zlist[i]);
var za = [];
for(var j = 0; j<flen; j++){
if(za.indexOf(flist[j]) === -1){
za.push(flist[j]);
let tmp = flist[j];
flist[j] = '';
let j2 = flist.indexOf(-zlist[i] - tmp);
flist[j] = tmp;
if(j2 != -1){
za.push(flist[j2]);
r.push([flist[j2], tmp, zlist[i]]);
}
}
}
}
}
// zzf
a = [];
for(var i = 0; i < flen; i++){
if(a.indexOf(flist[i]) === -1){
a.push(flist[i]);
var za = [];
for(var j = 0; j<zlen; j++){
if(za.indexOf(zlist[j]) === -1){
za.push(zlist[j]);
let tmp = zlist[j];
zlist[j] = '';
let j2 = zlist.indexOf(-flist[i] - tmp);
zlist[j] = tmp;
if(j2 != -1){
za.push(zlist[j2]);
r.push([zlist[j2], tmp, flist[i]]);
}
}
}
}
}
return r;
};