77 组合
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
你可以按 任何顺序 返回答案。
def backtracking(n,k,startIndex,path,result):
if len(path)==k:
result.append(path[:]) # 这里为什么要用切片
return
for i in range(1,n-(k-len(path))+1+1):#第一个加1:加一后的索引是满足条件的最后一个 第二个加1:range 左闭右开 这里用了剪枝,如果不用 range(1,n+1)
path.append(i)
backtracking(n,k,i+1,path,result)
path.pop()
def combine(n:int,k:int)->'List[List[int]]':
backtracking(n,k,1,[],[])
return result
- path:满足条件的单一结果
- result:满足条件的所有结果的集合