题目描述(中等难度)
解题思路
排序+回溯算法
python 代码
class Solution:
def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
trace = []
res = []
candidates.sort()
self.backtrace(candidates,0,target,trace,res)
return res
def backtrace(self,candidates,start,target,trace,res):
if target == 0:
res.append(trace[:])
return
for i in range(start,len(candidates)):
if target - candidates[i] < 0:
return 0
else:
trace.append(candidates[i])
self.backtrace(candidates,i,target-candidates[i],trace,res)
trace.pop()
s = Solution()
result = s.combinationSum([2,3,6,7],7)
print(result)