77. 组合
77. 组合 -< 总结回溯的模板 1. def backtracking(参数): if (终止条件): 存放结果 return for i in range(选择:本层集合中元素(树中节点孩子的数量就是集合的大小)): backtracking() 回溯,撤销处理的结果 代码: class Solution: def combine(self, n: int, k: int) -> List[List[int]]: result = [] path = [] def backtracking(n,k,startIndex): if k==len(path): result.append(path[:]) return for i in range(startIndex,n+1): path.append(i) backtracking(n,k,i+1) path.pop()#回溯进行撤销结果 backtracking(n,k,1)#初始化 return result 总结:回溯算法是一棵树上的深度优先遍历 类似本题,1-2 -3 -4 -4等等,其中可以加入剪枝加速 叶子节点信息体现在根节点到叶子结点的路径上,用path(栈)表示 每一个接待你递归做同一件事,区别在于起点(startIndex) 剪枝
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)