关键:去重
aslist用法:
class Solution {
public static List<List<Integer>> threeSum(int[] nums) {
List<List<Integer>> ans=new ArrayList<List<Integer>>();
int size=nums.length;
if(size<3) return ans;
Arrays.sort(nums);
for(int i=0;i<size-2;i++){
if(i>0 && nums[i]==nums[i-1]) continue;
if(nums[i]>0) break;
int left=i+1,right=size-1;
int target=-nums[i];
while(left<right){
if(nums[left]+nums[right]==target){
ans.add(new ArrayList<>(Arrays.asList(nums[i],nums[left],nums[right])));
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]>target){
right--;
}
else if(nums[left]+nums[right]<target){
left++;
}
}
}
return ans;
}
}