LeetCode15 三數之和

2021-10-06 13:11:47 字數 1151 閱讀 6525

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

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

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

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

[[-1, 0, 1],

[-1, -1, 2]

]參考兩數之和!

class

solution

:def

threesum

(self, nums: list[

int])-

> list[list[

int]]:

nums.sort(

) result =

for i in

range

(len

(nums)):

# 去重

if i>

0and nums[i]

==nums[i-1]

:continue

left = i+

1 right =

len(nums)-1

while left < right :

current = nums[i]

+nums[left]

+nums[right]

if current==0:

[nums[i]

,nums[left]

,nums[right]])

# 去重

while left==nums[left+1]

: left +=

1while left==nums[right-1]

: right -=

1 left +=

1 right -=

1elif current >0:

right -=

1else

: left +=

1return result

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