代码随想录26|回溯总结

回溯总结:链接地址

回溯三部曲 :参数、终止条件、for遍历(递归、回溯)

模板如下:

cpp 复制代码
void backtracking(参数) {
    if (终止条件) {
        存放结果;
        return;
    }

    for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
        处理节点;
        backtracking(路径,选择列表); // 递归
        回溯,撤销处理结果
    }
}

组合问题:

startIndex来控制for循环的起始位置
切割问题:

切割过的地方不能重复切割所以递归函数需要传入i + 1
子集问题:

在树形结构中子集问题是要收集所有节点的结果,而组合问题是收集叶子节点的结果

相关推荐
一直走下去-明5 分钟前
简单的http抓包解包完整代码
开发语言·python
caimouse32 分钟前
ReactOS 图形系统分析(51):元文件子系统 — metafile.c
c语言·开发语言
wenyq71 小时前
LeetCode 2460. Apply Operations to an Array
算法·leetcode
学习星球1 小时前
Solid.js 实战:拆解官方 RealWorld 项目
开发语言·javascript·vue.js
OPEN-F1 小时前
Python进阶教程:正则表达式进阶与文本处理
开发语言·python·正则表达式
.格子衫.2 小时前
032动态规划之区间DP——算法备赛
算法·动态规划
zhifou1234562 小时前
java 17升级安装
java·开发语言
青 春 记 忆2 小时前
LeetCode 142. 环形链表 II|Python 解法详解
python·leetcode·链表
for_ever_love__2 小时前
python基础语法学习: 面向对象的三大特性
开发语言·python·学习
不会代码的小猴2 小时前
7. JSON
开发语言·c++·笔记·qt·算法·json