题目
代码实现:
class Solution {
public List<List<Integer>> fourSum(int[] nums, int target) {
List<List<Integer>> list = new ArrayList<List<Integer>>();
Arrays.sort(nums);
int len = nums.length;
for(int i = 0;i < len-3;i++){
if(i>0 && nums[i-1] == nums[i]) continue;
for(int j = i+1;j< len-2;j++){
if(j>i+1 && nums[j-1] == nums[j]) continue;
int result = target - nums[i] - nums[j];
int left = j+1,right = len -1;
while(left<right){
if(result == nums[left] + nums[right]){
List<Integer> li = new ArrayList<Integer>();
li.add(nums[i]);li.add(nums[j]);li.add(nums[left]);li.add(nums[right]);
list.add(li);
left++;
right--;
while (left < right && nums[left] == nums[left - 1]) left++;
while (left < right && nums[right] == nums[right + 1]) right--;
}else if(result > nums[left] + nums[right]){
left++;
}else{
right--;
}
}
}
}
return list;
}
}
结果: