1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| class Solution: def __init__(self): self.path = [] self.result = [] self.sum_ = 0 def combinationSum3(self, k: int, n: int) -> List[List[int]]: return self.combinationSum3_(k,n,1) def combinationSum3_(self,k,n,start_index): size = len(self.path) if size>k: return if size==k: if self.sum_ == n: print(self.path) self.result.append(self.path.copy()) for i in range(start_index,10-(k-size)+1,1): self.path.append(i) self.sum_ += i self.combinationSum3_(k,n,i+1) self.sum_ -= i self.path.pop() return self.result
|