leetcode 18 四數之和

2021-09-28 20:43:25 字數 1380 閱讀 3824

leetcode題目鏈結

題目要求:在陣列中找4個數,和為最後的target

class

solution

:def

foursum

(self, nums, target)

: numslen =

len(nums)

#如果不加排序 結果會重複

nums.sort(

)#最後的結果是乙個集合,不允許有重複

res =

set(

)#建立字典

dic =

#通過2層迴圈,建立2數之和的每一種情況

for i in

range

(numslen-1)

:# for j in range(1,numslen):

for j in

range

(i+1

,numslen)

: temp = nums[i]

+nums[j]

if temp not

in dic:

dic[temp]=[

(i,j)

]else

: dic[temp]

(i,j)

)#判斷 另外2個數的和,是否在字典裡

for i in

range

(numslen-1)

:for j in

range

(i+1

,numslen)

: numone = nums[i]

+nums[j]

numtwo = target-numone

if numtwo in dic:

for p in dic[numtwo]

:#在字典裡,並且不重複,新增到最終的結果

if p[0]

>j:

# res.add((i,j,p[0],p[1]))

res.add(

(nums[i]

,nums[j]

,nums[p[0]

],nums[p[1]

]))

res1 =

for i in res:

return res1

if __name__ ==

"__main__"

: a = solution(

)print

(a.foursum([1

,0,-

1,0,

-2,2

],0)

)

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 四數之和

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