代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
稚辉君.MCA_P8_Java12 小时前
Gemini永久会员 C++返回最长有效子串长度
开发语言·数据结构·c++·后端·算法
Molesidy12 小时前
【C】简易的环形缓冲区代码示例
c语言·开发语言
张np12 小时前
java基础-ArrayList
java·开发语言
京东零售技术13 小时前
下一代 Lakehouse 智能未来新引擎 | Apache Hudi Meetup亚洲站活动回顾
算法
京东零售技术13 小时前
NeurIPS 2025 | TANDEM:基于双层优化的数据配比学习方法
后端·算法
zmzb010313 小时前
C++课后习题训练记录Day42
开发语言·c++·算法
CoovallyAIHub13 小时前
MAR-YOLOv9:革新农业检测,YOLOv9的“低调”逆袭
深度学习·算法·计算机视觉
不会编程的小寒13 小时前
C / C++ 面试题
java·开发语言
坐吃山猪13 小时前
Electron02-Hello
开发语言·javascript·ecmascript
Mr Lee_13 小时前
Smali 文件生成dex装箱算法整合
开发语言·python·算法