39. Combination Sum
# Medium
permutation 来做,一定要有index,下次迭代时用的是index
而不是(index+1)
,记录sum
或者每次都调用sum()
最重要的是如何避免重复!!!
class Solution:
def helper(self, candidates, target, level, result, index, s):
# stop condition
if s > target:
return
elif s == target:
result.append(level[:])
return
# regular case
for i in range(index, len(candidates)):
level.append(candidates[i])
s = s + candidates[i]
self.helper(candidates, target, level, result, i, s)
level.pop()
s = s - candidates[i]
def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
# edge case
result = []
level = []
if len(candidates) == 0:
return result
# regular case
self.helper(candidates, target, level, result, 0, 0)
return result
Last updated
Was this helpful?