class Solution {
public List<List<Integer>> threeSum(int[] nums) {
List<List<Integer>> res = new ArrayList<>();
int n = nums.length;
Arrays.sort(nums);
for(int i =0; i< n; i++){
if(nums[i]> 0) break;
if(i>0 && nums[i] == nums[i-1]) continue;
int l = i+1, r= n-1;
while(l<r){
int tmp = nums[i]+ nums[l]+ nums[r];
if(tmp > 0){
r--;
}else if(tmp <0){
l++;
}else{
res.add(Arrays.asList(nums[i], nums[l], nums[r]));
while(l< r && nums[l] == nums[l+1]) l++;
while(l< r && nums[r] == nums[r-1]) r--;
l++;
r--;
}
}
}
return res;
}
}
HOT100_三数之和
于 2024-11-04 22:53:14 首次发布