解法一
/**
* @param {number[]} nums
* @return {number[][]}
*/
var threeSum = function(nums) {
let number = [];
for(let i=0;i<nums.length-2;i++){
for(let j=i+1;j<nums.length-1;j++){
for(let m=j+1;m<nums.length;m++){
if(nums[i]+nums[j]+nums[m] === 0){
number.push([nums[i],nums[j],nums[m]]);
}
}
}
}
function compare(val1,val2){
return val1-val2;
};
for(let j=0; j<number.length;j++){
number[j].sort(compare);
}
for(let i=0;i<number.length-1;i++){
for(let j=i+1;j<number.length;j++){
if(number[i][0]===number[j][0] && number[i][1]===number[j][1] && number[i][2]===number[j][2]){
number.splice(i,1);
break;
}
}
}
return number;
};
console.log(threeSum([-1, 0, 1, 2, -1, -4]))
console.log(threeSum([0,0,0,0])) // 此处去重有问题
思路:先找出所有相加为0的情况,然后对其进行排序,之后去重