清单
● 理论基础
● 77. 组合
LeetCode #77 组合
1. 题目
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合
2. 思路
按照回溯三部曲:
- 递归函数的返回值和参数, 起始数值n和k,下一次递归起始点位startindex,遍历路径path,以及储存结果result
- 终止条件:当path的长度等同于k值时,将path导入result,返回
- 单层搜索过程: for循环遍历
3. 代码实现
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
result = []
self.backtracing(n, k, 1, [], result)
return result
def backtracing(self, n, k, startIndex, path, result):
if len(path) == k:
result.append(path[:])
for i in range(startIndex, n+1):
path.append(i)
self.backtracing(n,k, i+1, path, result)
path.pop()