77. 组合
给定两个整数 n
和 k
,返回范围 [1, n]
中所有可能的 k
个数的组合。
for语句中加入了递归,非常有意思
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
result = []
self.backtracking(n, k, 1,[] ,result)
return result
def backtracking(self, n, k, startidx, path, result):
if len(path) == k:
result.append(path[:])
return
for i in range(startidx, n + 1):
path.append(i)
self.backtracking(n, k, i + 1, path, result)
path.pop() #满足k个数加入result后return到这里进行pop处理,继续for循环
参考文档:代码随想录