代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
软件黑马王子5 分钟前
14.事件中心:主要作用和原理
开发语言·前端框架·c#
君顾121 分钟前
酒吧点餐小程序系统开发实战:从架构设计到上线全流程指南
java·开发语言·酒吧
似水এ᭄往昔1 小时前
【Qt】--常用控件(显示类控件)
开发语言·qt
en.en..1 小时前
Linux fork() 工作原理
数据结构·算法
PHP实战开发录1 小时前
PHP文件上传成功为什么页面却找不到
开发语言·nginx·php·开发
地平线开发者2 小时前
bevformer算法模型详细解读
算法
liliangcsdn2 小时前
ICIR权重矩阵如何加权标准化为综合因子
算法
云小逸2 小时前
C++ 第一阶段:对象、内存与生命周期
开发语言·c++
玖玥拾2 小时前
Lua 基础语法(二)
开发语言·unity·lua
SDWAN_Cheap2 小时前
SD-WAN智能选路技术的算法与实现机制
算法·php·sdwan