-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path18.zy445566.js
31 lines (31 loc) · 910 Bytes
/
18.zy445566.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
/**
* @param {number[]} nums
* @param {number} target
* @return {number[][]}
*/
var fourSum = function(nums, target) {
let fourSumList = [];
let fourSumListMap = {};
nums.sort((a,b)=>{return a-b;});
function beatRepeat(num1,num2,num3,num4) {
let res = [num1,num2,num3,num4];
let threeStr = res.join();
if (!fourSumListMap[threeStr]) {
fourSumListMap[threeStr] = true;
fourSumList.push(res)
}
}
for (let i=0;i<nums.length;i++) {
for (let j=nums.length-1;j>i+1;j--) {
for(let k=j-1;k>i;k--) {
for (let h=k-1;h>i;h--) {
let sumRes = nums[i]+nums[h]+nums[k]+nums[j];
if (sumRes==target) {
beatRepeat(nums[i],nums[h],nums[k],nums[j])
}
}
}
}
}
return fourSumList;
};