源码:
var fourSum = function(nums, target) {
if(nums.length<4) return []
let arr = []
let temp = []
nums = nums.sort((a,b)=>a-b)
for(let i=0;i<nums.length-3;i++){
if(i>0&&nums[i]===nums[i-1]) continue
for(let j=nums.length-1;j>2;j--){
if(j<nums.length-1&&nums[j]===nums[j+1]) continue
let left=i+1;right=j-1
while(left<right){
if(nums[i]+nums[left]+nums[right]+nums[j]===target){
if(nums[left]===nums[left+1]&&right>left+1){
left++
continue
}
if(nums[right]===nums[right-1]&&right>left+1){
right--
continue
}
temp=[nums[i],nums[left],nums[right],nums[j]]
arr.push(temp)
temp=[]
left++
}else if(nums[i]+nums[left]+nums[right]+nums[j]<target){
left++
} else if(nums[i]+nums[left]+nums[right]+nums[j]>target){
right--
}
}
}
}
return arr
};
结果: