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