代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
蜜獾云3 分钟前
java 异步编程
java·开发语言
xin^_^6 分钟前
java基础学习
java·开发语言·python
Trouvaille ~6 分钟前
【贪心算法】专题(三):排序、博弈与区间的贪婪法则
c++·算法·leetcode·青少年编程·面试·贪心算法·蓝桥杯
坐吃山猪8 分钟前
Tree-sitter语法树解析
开发语言·python·tree-sitter
Sakinol#12 分钟前
Leetcode Hot 100 —— 二叉树 part02
算法·leetcode
清水白石00814 分钟前
《解锁 Python 潜能:从内存模型看可变与不可变对象,及其实战最佳实践》
大数据·开发语言·python
IT199517 分钟前
C++工作笔记-动态库中的单例类存储方式
开发语言·c++·笔记
N1_WEB17 分钟前
HDU:杭电 2017 复试真题汇总
算法
努力学算法的蒟蒻18 分钟前
day111(3.13)——leetcode面试经典150
算法·leetcode·面试
所谓伊人,在水一方33319 分钟前
【Python数据可视化精通】第8讲 | 大规模数据可视化与性能优化
开发语言·python·信息可视化·性能优化·数据分析