18 四數之和

2021-09-29 10:58:49 字數 1617 閱讀 9878

"""

給定乙個包含n個整數的陣列nums和乙個目標值target,判斷nums中是否存在四個元素 a,b,c和d

使得 a + b + c + d 的值與 target 相等?找出所有滿足條件且不重複的四元組。

"""def

foursum

(nums, target)

: n =

len(nums)

if n<4:

return

nums.sort(

) res =

for i in

range

(n-3):

if i >

0and nums[i]

==nums[i-1]

:continue

if nums[i]

+ nums[i+1]

+nums[i+2]

+ nums[i+3]

> target:

break

if nums[i]

+ nums[i-1]

+ nums[i-2]

+ nums[i-3]

< target:

continue

for j in

range

(i+1

, n-2)

:if j-i >

1and nums[j]

== nums[j-1]

:continue

if nums[i]

+ nums[j]

+ nums[j+1]

+ nums[j+2]

> target:

break

if nums[i]

+ nums[j]

+ nums[j+1]

+ nums[j+2]

< target:

continue

left = j+

1 right = n-

1while left < right:

temp = nums[i]

+ nums[j]

+ nums[left]

+ nums[right]

if temp == target:

[nums[i]

,nums[j]

, nums[left]

, nums[right]])

while left < right and nums[left]

== nums[left+1]

: left +=

1while left < right and nums[right]

== nums[right-1]

: right -=

1 left +=

1 right -=

1elif temp > target:

right -=

1else

: left +=

1return res

18 四數之和

給定乙個含有 n 個整數的陣列 s,數列 s 中是否存在元素 a,b,c 和 d 使 a b c d target 請在陣列中找出所有滿足各元素相加等於特定值 的不重複組合。注意 解決方案集不能包含重複的四元組合。例如,給定陣列 s 1,0,1,0,2,2 並且給定 target 0。示例答案為 1...

18 四數之和

給定乙個包含 n 個整數的陣列nums和乙個目標值target,判斷nums中是否存在四個元素 a,b,c 和 d 使得 a b c d 的值與target相等?找出所有滿足條件且不重複的四元組。注意 答案中不可以包含重複的四元組。示例 給定陣列 nums 1,0,1,0,2,2 和 target ...

18 四數之和

給定乙個包含 n 個整數的陣列 nums 和乙個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d 使得 a b c d 的值與 target 相等?找出所有滿足條件且不重複的四元組。注意 答案中不可以包含重複的四元組。示例 給定陣列 nums 1,0,1,0,2,2 和 ...