LeetCode15 三數之和

2021-09-10 12:40:41 字數 1075 閱讀 1375

三數之和

給定乙個包含 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)

:"""

:type nums: list[int]

:rtype: list[list[int]]

"""nums=

sorted

(nums)

#排序 o(nlogn)

output =

set(

)for k in

range

(len

(nums)):

target =

-nums[k]

i, j = k +1,

len(nums)-1

while i < j:

sum_two = nums[i]

+ nums[j]

if sum_two < target:

i +=

1elif sum_two >target:

j -=

1else

: output.add(

(nums[k]

, nums[i]

, nums[j]))

i +=

1 j -=

1return

list

(set

(output)

)

time complexity: o(n

2)

o(n^2)

o(n2

)

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