代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
前端小L7 小时前
回溯算法专题(六):双重剪枝的艺术——「组合总和 III」
算法·剪枝
我命由我123457 小时前
微信小程序 bind:tap 与 bindtap 的区别
开发语言·前端·javascript·微信小程序·小程序·前端框架·js
leoufung7 小时前
103. 二叉树的锯齿形层序遍历(LeetCode 103)
算法·leetcode·职场和发展
程序员东岸7 小时前
《数据结构——排序(上)》从扑克牌到分治法:插入排序与希尔排序的深度剖析
数据结构·笔记·算法·排序算法
Yolo566Q7 小时前
基于ArcGIS、InVEST与RUSLE水土流失模拟及分析
开发语言·python
八个程序员7 小时前
c++——探讨a÷b(long long)
开发语言·c++
Amarantine、沐风倩✨8 小时前
深度解析:轨迹数据抽稀到底该放数据库还是 Java?(以 56800 条数据为例)
java·开发语言·数据库
bxlj_jcj8 小时前
分布式ID方案、雪花算法与时钟回拨问题
分布式·算法
墨染点香8 小时前
LeetCode 刷题【179. 最大数】
算法·leetcode·职场和发展
XL's妃妃8 小时前
Arthas:Java 应用诊断利器
java·开发语言