题目地址:https://leetcode-cn.com/problems/combination-sum/
提示: 1 <= candidates.length <= 30 1 <= candidates[i] <= 200 candidate
中的每个元素都是独一无二的。 1 <= target <= 500
class Solution:
def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
if not candidates: return []
n = len(candidates)
candidates.sort()
res = []
def helper(i, tmp, target):
if target == 0:
res.append(tmp)
return
if(i == n or target < candidates[i]):
return
helper(i, tmp + [candidates[i]], target - candidates[i])
helper(i + 1, tmp, target)
helper(0, [], target)
return res
感谢题解区吴彦祖的解答:#39题吴彦祖题解