LeetCode15-三数之和
本文最精华的就是下面的视频讲解!
🔗:参考的视频讲解
class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> ans = new ArrayList<>();Arrays.sort(nums);int n=nums.length;int i=0,j=0,k=0,sum=0;for(;i<n-2;++i){if(i>0&&nums[i]==nums[i-1]){continue;}if(nums[i]+nums[i+1]+nums[i+2]>0){break;}if(nums[i]+nums[n-2]+nums[n-1]<0){continue;}j=i+1;k=n-1;for(;j<k;){sum=nums[i]+nums[j]+nums[k];if(sum<0){j++;}else if(sum>0){k--;}else{List<Integer> tmp=new ArrayList<Integer>();tmp.add(nums[i]);tmp.add(nums[j]);tmp.add(nums[k]);ans.add(tmp);j++;while(j<k&&nums[j]==nums[j-1]){++j;}k--;while(k>j&&nums[k]==nums[k+1]){k--;}}}}return ans;}
}