給定乙個包含 n 個整數的陣列 nums 和乙個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d ,使得 a + b + c + d 的值與 target 相等?找出所有滿足條件且不重複的四元組。
注意:答案中不可以包含重複的四元組。
示例:
給定陣列 nums = [1, 0, -1, 0, -2, 2],和 target = 0。滿足要求的四元組集合為:
[[-1, 0, 0, 1],
[-2, -1, 1, 2],
[-2, 0, 0, 2]
]在三數之和的解題思路基礎上再巢狀一層迴圈,即雙層迴圈加雙指標。
class
solution
:def
foursum
(self, nums: list[
int]
, target:
int)
-> list[list[
int]]:
nums.sort(
) n =
len(nums)
ans =
if n <4:
return ans
for i in
range
(n-3):
for j in
range
(i+1
, n-2)
: l = j +
1 r = n -
1while l < r:
if nums[i]
+nums[j]
+nums[l]
+nums[r]
== target:
sub_ans =
[nums[i]
, nums[j]
, nums[l]
, nums[r]
] sub_ans.sort(
)if sub_ans not
in ans:
[nums[i]
, nums[j]
, nums[l]
, nums[r]])
l +=
1 r -=
1elif nums[i]
+nums[j]
+nums[l]
+nums[r]
> target:
r -=
1elif nums[i]
+nums[j]
+nums[l]
+nums[r]
< target:
l +=
1return ans
LeetCode 18 四數之和
給定乙個包含 n 個整數的陣列 nums 和乙個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d 使得 a b c d 的值與 target 相等?找出所有滿足條件且不重複的四元組。注意 答案中不可以包含重複的四元組。示例 給定陣列 nums 1,0,1,0,2,2 和 ...
LeetCode 18 四數之和
給定乙個包含 n 個整數的陣列nums和乙個目標值target,判斷nums中是否存在四個元素 a,b,c 和 d 使得 a b c d 的值與target相等?找出所有滿足條件且不重複的四元組。注意 答案中不可以包含重複的四元組。示例 給定陣列 nums 1,0,1,0,2,2 和 target ...
LeetCode筆記 18四數之和
題目 給定乙個包含 n 個整數的陣列nums和乙個目標值target,判斷nums中是否存在四個元素 a,b,c 和 d 使得 a b c d 的值與target相等?找出所有滿足條件且不重複的四元組。注意 答案中不可以包含重複的四元組。示例 給定陣列 nums 1,0,1,0,2,2 和 targ...