代码随想录刷题第二十四天
回溯法理论基础:
组合 (LC 77)
题目思路:
- 普通思路:
- 剪枝优化:
代码实现:
class Solution(object):
def __init__(self):
self.result = []
self.path = []
def combine(self, n, k):
"""
:type n: int
:type k: int
:rtype: List[List[int]]
"""
self.backtracking(n, k, 1)
return self.result
def backtracking(self, n, k, startindex):
if len(self.path) == k:
self.result.append(self.path[:])
return
for i in range(startindex, n+2-(k-len(self.path))):
self.path.append(i)
self.backtracking(n,k,i+1)
self.path.pop()
return