Skip to content

Latest commit

 

History

History
69 lines (51 loc) · 1.21 KB

216.md

File metadata and controls

69 lines (51 loc) · 1.21 KB
  1. Combination Sum III
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]]
Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.

my thoughts:

1. dfs.

my solution:

**********
class Solution:
    def combinationSum3(self, k, n):
        """
        :type k: int
        :type n: int
        :rtype: List[List[int]]
        """
        if n < 1:
            return []
        
        def dfs(k, n, res, cur):
            if k == 0 and n == 0:
                res.append(cur[:])
                return
            if n <= cur[-1] or cur[-1] == 9:
                return
            for i in range(cur[-1]+1, 10):
                cur.append(i)
                dfs(k-1, n-i, res, cur)
                cur.pop()
                
        
        res = []
        for i in range(1, 10):
            cur = [i]
            dfs(k-1, n-i, res, cur)
            
        return res

my comments:


from other ppl's solution:

1. N/A