演算法練習 三數之和

2021-10-03 12:22:51 字數 929 閱讀 2346

給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。

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

示例:給定陣列 nums = [-1, 0, 1, 2, -1, -4],

滿足要求的三元組集合為:

[[-1, 0, 1],

[-1, -1, 2]

]python程式設計**

class solution:

def threesum(self, nums: list[int]) -> list[list[int]]:

nums.sort()

lenth = len(nums)

result =

if lenth<3:

return result

for i in range(lenth):

if nums[i] > 0 :

return result

if i >0 and nums[i]==nums[i-1]:

continue

l = i+1

r = lenth-1

while l0:

r =r-1

elif nums[i]+nums[l]+nums[r] < 0:

l =l+1

return result

思路

1、先對陣列進行排序處理,通過i,l,r進行加和,其中i體會

開始執行**時,我將下面**中的while寫成了if,結果導致最後結果出現重複的情況。

leetcode練習 三數之和

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

演算法 兩數之和,三數之和

給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 leetcode 思路 兩層for迴圈時間複雜度是o ...

演算法 三數之和

給你乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 請你找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。參考 1.對原始陣列進行排序。2.對陣列進行遍歷並且構建左右雙指標。3.判定符合要求的條件。去重分析 當前和前乙個...