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