回溯,超时
class Solution {
public List<List<Integer>> fourSum(int[] nums, int target) {
Arrays.sort(nums);
ff(nums,0,target);
return res;
}
int sum=0;
List<List<Integer>> res=new ArrayList();
List<Integer> temp=new ArrayList();
void ff(int[] nums,int index,int target){
if(temp.size()==4){
if(sum==target){
res.add(new ArrayList(temp));
}return;
}
Set<Integer> set=new HashSet();
for(int i=index;i<nums.length;i++){
if(set.contains(nums[i])){continue;}
set.add(nums[i]);
temp.add(nums[i]);
sum+=nums[i];
ff(nums,i+1,target);
sum-=nums[i];
temp.remove(temp.size()-1);
}
}
}