描述:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
candidates 中的数字可以无限制重复被选取。
class Solution(object):
def combinationSum(self, candidates, target):
"""
:type candidates: List[int]
:type target: int
:rtype: List[List[int]]
"""
candidates.sort()
b = []
def temp(yiyou, t, cand):
if t in cand:
b.append(yiyou + [t])
if t > cand[0]:
for i in range(len(cand)):
temp(yiyou + [cand[i]], t-cand[i], cand[i:])
temp([], target, candidates)
return b