[39][中等][回溯] 组合总和
题目描述
输入:candidates = [2,3,6,7], target = 7,
所求解集为:
[
[7],
[2,2,3]
]输入:candidates = [2,3,5], target = 8,
所求解集为:
[
[2,2,2,2],
[2,3,3],
[3,5]
]解题思路
最后更新于
输入:candidates = [2,3,6,7], target = 7,
所求解集为:
[
[7],
[2,2,3]
]输入:candidates = [2,3,5], target = 8,
所求解集为:
[
[2,2,2,2],
[2,3,3],
[3,5]
]最后更新于
class Solution:
def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
results = []
def dfs(path, tar, start):
if tar == 0:
results.append(path[:])
return
if tar < 0:
return
for i, num in enumerate(candidates[start:]):
path.append(num)
dfs(path, tar - num, start + i)
path.pop()
dfs([], target, 0)
return results