[leetcode] - 39



  • idxの2番目の数字を追加できるまで、一度に1つの数字を加えて解いてみました.
    -なぜ解けないの?

  • 一度の復帰で一つの行動しかしない
    -j 2番目の数字を入れる
    -j複数の数字を入れる場合は、次へ
  • 
    
    class Solution:
        def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
            
            outputs = []
            def backtrack(remain, comb, start):
                if remain == 0:
                    # copy !
                    outputs.append(comb[:])
                    return            
                elif remain < 0:
                    return
                
                for i in range(start, len(candidates)):
                    comb.append(candidates[i])
                    backtrack(remain - candidates[i], comb, i)
                    comb.pop()
                    
                return
            
            backtrack(target, [], 0)
            
            return outputs