Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers.

Example 1:

Input: k = 3, n = 7

Output:

[[1,2,4]]

 

Example 2:

Input: k = 3, n = 9

Output:

[[1,2,6], [1,3,5], [2,3,4]]

 

class Solution(object):
    def combinationSum3(self, k, n):
        """
        :type k: int
        :type n: int
        :rtype: List[List[int]]
        """
        ans = []
        path = []
        if k<=0 or n<=0:
            return ans
        self.comb_helper(k, n, 1, path, ans)
        return ans
    
    def comb_helper(self, k, n, start, path, ans):
        if n<0:
            return
        if n==0 and k==0:
            ans.append(list(path))
            return
        for i in xrange(start, 10):
            path.append(i)
            self.comb_helper(k-1, n-i, i+1, path, ans)
            path.pop()
        

 

相关文章:

  • 2021-07-15
  • 2021-06-21
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-06
猜你喜欢
  • 2022-01-09
  • 2021-12-08
  • 2022-12-23
  • 2021-04-18
相关资源
相似解决方案