代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
uesowys15 小时前
华为OD算法开发指导-数据结构-图
数据结构·算法·华为od
实心儿儿15 小时前
算法3:链表分割
数据结构·算法·链表
代码探秘者15 小时前
【Java】final、finally、finalize 区别
java·开发语言
yeflx15 小时前
C++纯虚接口
开发语言·c++
代码探秘者15 小时前
【Java】浅拷贝 VS 深拷贝:核心差异 + 实现方式 + 避坑指南
java·开发语言
Tisfy15 小时前
LeetCode 1415.长度为 n 的开心字符串中字典序第 k 小的字符串:DFS构造 / 数学O(n)
数学·算法·leetcode·深度优先·字符串·dfs·模拟
Joker Zxc15 小时前
【前端基础(Javascript部分)】5、JavaScript的循环语句
开发语言·前端·javascript
FriendshipT15 小时前
算法部署知识点:TensorRT、Tensorflow、Flask、Docker、TFLite
算法·docker·flask·tensorflow
进击的小头15 小时前
第7篇:基于传递函数的PI控制器设计
python·算法
TracyCoder12315 小时前
LeetCode Hot100(62/100)——62. 不同路径
算法·leetcode·职场和发展