From dbbfcf9e450a80d5a406d582f6b0b8700ae79ce3 Mon Sep 17 00:00:00 2001 From: dingjiawen <745518019@qq.com> Date: Mon, 23 May 2022 22:50:29 +0800 Subject: [PATCH] =?UTF-8?q?leecode=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Leecode/src/main/java/sort/ThreeSum.java | 62 ++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/Leecode/src/main/java/sort/ThreeSum.java b/Leecode/src/main/java/sort/ThreeSum.java index 4cd21ca..79675a9 100644 --- a/Leecode/src/main/java/sort/ThreeSum.java +++ b/Leecode/src/main/java/sort/ThreeSum.java @@ -89,6 +89,68 @@ public class ThreeSum { } + } + + + return parentList; + + } + + //更简洁一点的思路 + public static List> threeSum1(int[] nums) { + + List> parentList = new ArrayList<>(); + + if (nums.length < 3) { + return parentList; + } + //先排序 + Arrays.sort(nums); + + //后累加 + //第一个数的索引i + for (int i = 0; i < nums.length; i++) { + + if(nums[i]>0) break; + + //为了避免这一次和前一次重复 + if (i > 0 && nums[i] == nums[i - 1]) { + continue; + } + + //第三个数的索引k + int k = nums.length - 1; + + //第二个数的索引 + int j=i+1; + + + + //开始遍历 + while(j0){ + //太多了 + k--; + + }else { + parentList.add(new ArrayList(Arrays.asList(nums[i],nums[j],nums[k]))); + //为了避免和上一次重复 + while (j