publicList<List<Integer>>threeSum(int[] nums){List<List<Integer>> result =newArrayList<>();int n = nums.length;// 1.排序Arrays.sort(nums);// 2.遍历所有数据的indexfor(int i =0; i < n; i++){if(nums[i]>0)break;//去重if(i>0&& nums[i]==nums[i-1])continue;int lp = i +1;int rp = n -1;while(lp < rp){int sum = nums[i]+ nums[lp]+ nums[rp];if(sum <0){
lp++;}elseif(sum >0){
rp--;}else{
result.add(Arrays.asList(nums[i],nums[lp],nums[rp]));
lp++;
rp--;//去重while(lp < rp && nums[lp]==nums[lp-1]) lp++;while(lp < rp && nums[rp]==nums[rp+1]) rp--;}}}return result;}