
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
# return list(itertools.combinations(range(1,n+1),k))
def backtrack(start, n, k):
# 若达到k个元素,则保存当前的组合
if len(path) == k:
result.append(path[:])
return
# start会增加,(k - len(path))会减少
for i in range(start, n - (k - len(path)) + 1):
path.append(i)
backtrack(i + 1, n, k)
path.pop()
result = []
path = []
backtrack(1, n + 1, k) # 从1开始,n结束
return result
本文介绍了如何使用Python的backtracking策略实现n个元素中选择k个元素的所有可能组合,通过递归方法生成并返回结果。主要涉及Solution类中的`combine`函数和`backtrack`辅助函数,展示了组合问题的解决方案。
884

被折叠的 条评论
为什么被折叠?



