77 Combinations

backtracking 回溯法,定义终止返回条件,类似于遍历树的孩子, 注意可以增加一个判断,减少不必要的循环。

class Solution(object):
    def __init__(self):
        self.res = []

    def helper(self, current, choose_from, remain):
        if remain == 0:
            self.res.append(current)
        elif remain > len(choose_from):
            return
        else:
            for i in range(len(choose_from)):
                temp = current[:]
                temp.append(choose_from[i])
                temp_choose_from = choose_from[i+1:]
                self.helper(temp,temp_choose_from, remain - 1)

    def combine(self, n, k):
        """
        :type n: int
        :type k: int
        :rtype: List[List[int]]
        """
        self.helper([],[i for i in range(1,n+1)], k)
        return self.res

results matching ""

    No results matching ""