public class Solution {
public List<List<Integer>> threeSum(int[] nums) {
Arrays.sort(nums);
List<List<Integer>> res=new ArrayList<>();
for(int i=0;i<nums.length-2;i++){
if(i==0||(i>0&&nums[i]!=nums[i-1])){
int lo=i+1,hi=nums.length-1,sum=0-nums[i];
while(lo<hi){
if(nums[lo]+nums[hi]==sum){
res.add(Arrays.asList(nums[i],nums[lo],nums[hi]));
while(lo<hi&&nums[lo]==nums[lo+1]) lo++;
while(lo<hi&&nums[hi]==nums[hi-1]) hi--;
lo++;hi--;
}else if(nums[lo]+nums[hi]<sum) lo++;
else hi--;
}
}
}
return res;
}
}
15. 3Sum
最后編輯于 :
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內(nèi)容
- 注意要跳過重復。把每個element 看成三個數(shù)中的一個,然后在這個數(shù)后面剩余的數(shù)里,從最大和最小的數(shù)開始做2sum.
- 題目 給出一個有n個整數(shù)的數(shù)組S,在S中找到三個整數(shù)a, b, c,找到所有使得a + b + c = 0的三元組...