第77题. 组合
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。
回溯法三部曲
1.递归函数的返回值以及参数
2.回溯函数终止条件
3.单层搜索的过程
时间复杂度: O(n * 2^n)
空间复杂度: O(n)
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
result=[]
self.backtraking(n,k,1,[],result)
return result
def backtraking(self,n,k,startindex,path,result):
if len(path)==k:
result.append(path[:])
return
for i in range(startindex,n+1):
path.append(i)
self.backtraking(n,k,i+1,path,result)
path.pop()