leetcode 15 三數之和

2021-09-29 15:51:48 字數 878 閱讀 2216

給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a+b

+c=0

?a + b + c = 0 ?

a+b+c=

0?找出所有滿足條件且不重複的三元組。

注意:答案中不可以包含重複的三元組。

演算法流程(借鑑leetcode-吳彥祖的題解):

特判,對於陣列長度 nn,如果陣列為 nullnull 或者陣列長度小於 33,返回 。

對陣列進行排序。

遍歷排序後陣列:

class

solution

if(nums[i]

+nums[l]

+nums[r]

<

0) # 如果三者之和小於零,則需要將左指標指向的索引向右移動

if(nums[i]

+nums[l]

+nums[r]==0

) # 如果三者之和等於零,符合條件,需要考慮去掉重複值

if(nums[r-1]

==nums[r]

&& r-

1>l) # 如果右指標的的下乙個值等於右指標指向的值,則可以跳過

vec.

push_back()

; # 當左右指標都不能跳過時,將該三元組放進二維陣列中

l++; # 將左指標右移

r--; # 將右指標左移,進行下一組遍歷

break;}

}}}return vec;}}

;

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...