zoukankan      html  css  js  c++  java
  • 216. Combination Sum III——本质DFS

    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()
            
  • 相关阅读:
    JavaScript进阶-BOM和DOM
    JavaScript基础
    CSS2-属性
    CSS1-选择器
    HTML-常用标签
    判断回文
    课堂作业
    动手动脑
    原码反码补码
    Java第一次考试作业
  • 原文地址:https://www.cnblogs.com/bonelee/p/6201356.html
Copyright © 2011-2022 走看看