双指针

it2025-07-29  9

目录

双指针模板题目三数之和

双指针

模板

题目

三数之和

注意 重复元素判断,边界问题 public List<List<Integer>> threeSum(int[] nums) { Arrays.sort(nums); int len = nums.length; int left = 0,right = 0; List<List<Integer>> res = new ArrayList<>(); for (int i = 0; i < len; i++) { if (i>0&&nums[i]==nums[i-1])continue; if (nums[i]>0)break; left = i+1; right=len-1; while (left<right){ if ((nums[i]+nums[left]+nums[right])>0){ right--; }else if ((nums[i]+nums[left]+nums[right]<0)){ left++; }else { res.add(new ArrayList<Integer>(Arrays.asList(new Integer[]{nums[i],nums[left],nums[right]}))); while (left<right&&nums[left]==nums[left+1])left++; while (left<right&&nums[right]==nums[right-1])right--; left++; right--; } } } return res; } ```
最新回复(0)