给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] `
class Solution {
public List<List<Integer>> fourSum(int[] nums, int target) {
List<List<Integer>> list= new ArrayList<>();
int n=nums.length-1;
Arrays.sort(nums);
for(int i=0;i<n;i++){
if(i>0&&nums[i-1]==nums[i]){
continue;
}
for(int j=i+1;j<n;j++){
if(j>i+1&&nums[j-1]==nums[j]){
continue;
}
int l=j+1;
int r=n;
while(l<r){
int sum=nums[i]+nums[j]+nums[r]+nums[l];
if(sum>target){
r--;
}
else if (sum<target)
{
l++;
}
else {
list.add(Arrays.asList(nums[i],nums[j],nums[r],nums[l]));
while(r>l&&nums[r]==nums[r-1])r--;
while(r>l&&nums[l]==nums[l+1])l++;
l++;
r--;
}
}
}
}
return list;
}
}