代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
玉小格1 分钟前
一次关于Python的总结
算法
星辰_mya2 分钟前
CountDownLatch深度解析
java·开发语言·后端·架构
伊甸33 分钟前
从企业级项目学敏感词过滤:DFA算法与双层缓存实战
java·算法·缓存
laplaya6 分钟前
使用 vcpkg 管理 C++ 项目中的依赖
开发语言·c++
bIo7lyA8v16 分钟前
算法中的随机化思想及其复杂度收益评估的技术8
算法
feixing_fx17 分钟前
选择器的威力——深入理解优先级计算与层叠规则
开发语言·前端·css·前端框架·html
数据法师20 分钟前
视频文件重复检测工具:基于哈希与视频指纹的三级筛选机制
算法·音视频·哈希算法
其实防守也摸鱼23 分钟前
软件安全与漏洞--Windows底层原理与软件逆向工程基础
linux·网络·数据库·算法·安全·安全架构·软件安全与漏洞
6v6-博客26 分钟前
C语言字符串中空格的表示方法
c语言·开发语言
geovindu27 分钟前
python: speech to text offline
开发语言·python·语音识别