代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
2401_884563245 小时前
C++中的访问者模式高级应用
开发语言·c++·算法
智者知已应修善业5 小时前
【51单片机用两个定时计数器级联实现定时】2023-04-12
c语言·经验分享·笔记·算法·51单片机
君义_noip5 小时前
信息学奥赛一本通 1613:打印文章
c++·算法·信息学奥赛·csp-s
消失的旧时光-19436 小时前
C++ 多态核心三件套:虚函数、纯虚函数、虚析构函数(面试 + 工程完全指南)
开发语言·c++·面试·虚函数·纯虚函数·虚析构函数
nglff6 小时前
蓝桥杯抱佛脚第四天|前缀和,差分对应练习
算法·职场和发展·蓝桥杯
青春易逝丶6 小时前
策略模式
java·开发语言·策略模式
freexyn6 小时前
Matlab入门自学七十四:坐标系转换,直角坐标、极坐标和球坐标的转换
开发语言·算法·matlab
咱就是说不配啊6 小时前
3.20打卡day34
数据结构·c++·算法
小张会进步6 小时前
数组:二维数组
java·javascript·算法
Dxy12393102166 小时前
js如何把字符串转数字
开发语言·前端·javascript