def foursum(nums, target):
numlen, res, d = len(nums), set(), {}
if numlen < 4: return
nums.sort()
'''二層迴圈遍歷任意兩個元素對和存放到字典d裡並把序號存起來
'''for p in range(numlen):
for q in range(p + 1, numlen):
if nums[p] + nums[q] not in d:
d[nums[p] + nums[q]] = [(p, q)]
else:
'''二層迴圈遍歷如果target-任意兩數之和的差存在字典中遍歷符合的字典的values值,滿足條件的就可以放到結果集中。
'''for i in range(numlen):
for j in range(i + 1, numlen - 2):
t = target - nums[i] - nums[j]
if t in d:
for k in d[t]:
if k[0] > j: res.add((nums[i], nums[j], nums[k[0]], nums[k[1]]))
print([list(i) for i in res])
return [list(i) for i in res]
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 ...
leetcode18 四數之和
給定乙個包含 n 個整數的陣列 nums 和乙個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d 使得 a b c d 的值與 target 相等?找出所有滿足條件且不重複的四元組。注意 答案中不可以包含重複的四元組。示例 給定陣列 nums 1,0,1,0,2,2 和 ...