leetcode 39. 組合せ合計(python)
1486 ワード
【前言】
pythonブラシleetcode問題解決ディレクトリインデックス:https://blog.csdn.net/weixin_40449300/article/details/89470836
githubリンク:https://github.com/Teingi/test
【本文】
重複要素のない配列
説明:すべての数字( の解セットには、重複する組合せは含まれません.
例1:
例2:
pythonブラシleetcode問題解決ディレクトリインデックス:https://blog.csdn.net/weixin_40449300/article/details/89470836
githubリンク:https://github.com/Teingi/test
【本文】
重複要素のない配列
candidates
とターゲット数target
が与えられ、candidates
のすべての数値とtarget
の組合せを見つける.candidates
の数字は、無制限に繰り返し選択することができる.説明:
target
を含む)は正の整数です.例1:
: candidates = [2,3,6,7],
target = 7
,
:
[
[7],
[2,2,3]
]
例2:
: candidates = [2,3,5],
target = 8,
:
[
[2,2,2,2],
[2,3,3],
[3,5]
]
class Solution:
def combinationSum(self, candidates, target):
"""
:type candidates: List[int]
:type target: int
:rtype: List[List[int]]
"""
candidates.sort()
#
Solution.anslist = []
self.DFS(candidates, target, 0, [])
return Solution.anslist
def DFS(self, candidates, target, start, valuelist):
if target == 0:
return Solution.anslist.append(valuelist)
for i in range(start, len(candidates)):
if candidates[i] > target:
return
self.DFS(candidates, target-candidates[i], i, valuelist+[candidates[i]])