leetcode18 四數之和

2021-08-28 16:01:22 字數 722 閱讀 6315

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