代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
tgethe39 分钟前
java并发——1
java·开发语言·面试
郑州光合科技余经理44 分钟前
海外O2O系统源码剖析:多语言、多货币架构设计与二次开发实践
java·开发语言·前端·小程序·系统架构·uni-app·php
前端摸鱼匠7 小时前
【AI大模型春招面试题11】什么是模型的“涌现能力”(Emergent Ability)?出现条件是什么?
人工智能·算法·ai·自然语言处理·面试·职场和发展
globaldomain7 小时前
什么是用于长距离高速传输的TCP窗口扩展?
开发语言·网络·php
MORE_777 小时前
leecode-合并区间-贪心算法
算法·贪心算法
沈阳信息学奥赛培训7 小时前
#undef 指令 (C/C++)
c语言·开发语言·c++
2401_873204657 小时前
分布式系统安全通信
开发语言·c++·算法
Dxy12393102168 小时前
JS发送请求的方法详解
开发语言·javascript·ecmascript
sw1213898 小时前
C++中的代理模式实战
开发语言·c++·算法
難釋懷9 小时前
Lua语法入门-条件控制、函数
开发语言·junit·lua