leetcode 三數之和python

2022-09-11 13:18:18 字數 1004 閱讀 4319

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

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

示例:

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

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

[ [-1, 0, 1],

[-1, -1, 2]

]

思路:先對陣列進行排序,然後使用雙指標,左右逼近,遍歷陣列作為外層迴圈,重點是去重,left或right碰到相同數字則往下跳乙個

class

solution(object):

defthreesum(self, nums):

""":type nums: list[int]

:rtype: list[list[int]]

"""#

-4,-1,-1,0,1,2

#第一步,判斷邊界

res =

nums.sort()

n=len(nums)

for i in range(n-2):

if i==0 or nums[i]>nums[i-1]:#

去重

left,right = i+1,n-1

while leftident = nums[i]+nums[left]+nums[right]

if ident==0:

left+=1right-=1

#去重while leftand nums[left]==nums[left-1]:

left+=1

while leftand nums[right]==nums[right+1]:

right-=1

elif ident<0:

left+=1

else

: right-=1

return res

leetcode 三數之和

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

LeetCode 三數之和

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

Leetcode 三數之和

解決方案一 class solution else if nums j nums k target else while i 1 1 i return lllist 解決方案2 class solution 如果有3個0,就直接作為乙個解 if zerosize 3 res.add arrays.a...