代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
CoovallyAIHub10 分钟前
YOLOv8-SMOT:基于切片辅助训练与自适应运动关联的无人机视角小目标实时追踪框架
深度学习·算法·计算机视觉
CoovallyAIHub21 分钟前
全景式综述|多模态目标跟踪全面解析:方法、数据、挑战与未来
深度学习·算法·计算机视觉
像风一样自由202026 分钟前
五种算法详解(SVM / Logistic Regression / kNN / Random Forest / HistGradientBoosting)
算法·随机森林·支持向量机
Cyclic100137 分钟前
IOS购买订阅通知信息解析说明Java
java·开发语言·ios
一起努力啊~42 分钟前
算法题打卡力扣第34题:在排序数组中查找元素的第一个和最后一个位置(mid)
数据结构·算法·leetcode
AI视觉网奇1 小时前
麒麟系统播放图片 速度比较
开发语言·python·pygame
晨曦5432101 小时前
图(Graph):关系网络的数学抽象
开发语言·算法·php
1白天的黑夜12 小时前
链表-143.重排链表-力扣(LeetCode)
数据结构·leetcode·链表
Ustinian_3102 小时前
【C/C++】For 循环展开与性能优化【附代码讲解】
c语言·开发语言·c++
牵牛老人2 小时前
Qt 插件开发全解析:从接口定义,插件封装,插件调用到插件间的通信
开发语言·qt