题目
代码实现:
class Solution {
public List<List<Integer>> threeSum(int[] nums) {
List<List<Integer>> list = new ArrayList<List<Integer>>();
int len = nums.length,count = 0;
if(len < 3){
return list;
}
Arrays.sort(nums);
for(int i = 0;i < len-2;i++){
if(nums[i] > 0) break;
if(i>0 && nums[i] == nums[i-1]) continue;
int cur = -nums[i],left = i+1,right = len-1;
while(left < right){
if(nums[left] + nums[right] == cur){
List<Integer> li = new ArrayList<Integer>();
li.add(nums[i]);
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(nums[left] + nums[right] < cur){
left++;
}else{
right--;
}
}
}
return list;
}
}