Leetcode 15 三數之和

2022-09-14 14:54:10 字數 646 閱讀 8650

中等

本題最關鍵的是如何去除重複解。

首先,如果陣列長度小於3,返回空

按從小到大順序排序陣列。

如果長度大於等於3

在遍歷陣列的過程中維護乙個left和right

left = i + 1, right = nums.length

如果num[i] > 0,也即是後面都是大於0的,返回結果。

其次,如果nums[i]與nums[i - 1]相等,也就是nums[i]這個值之前已經判斷過,continue。

如果發現了nums[i] + nums[left] + nums[right] == 0,將其加入結果中。並通過下面步驟去重。

如果nums[left] == nums[left + 1],結果重複,left += 1

right類似。

class

solution

for (int i = 0; i < nums.length; i++)

else

if (nums[i] + nums[left] + nums[right] > 0)

right -= 1;

else

left += 1;}}

return

res;

}}

LeetCode 15 三數之和

15.給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組 方法一,個人解法正確,但是效率太低,時間複雜度o n 3 時間超時,無法提交至leetcode public s...

leetcode 15 三數之和

給定乙個包含 n 個整數的陣列nums,判斷nums中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 class solutio...

leetcode15 三數之和

給定乙個包含 n 個整數的陣列nums,判斷nums中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 先找兩數之和,然後再用un...