代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
Savior`L9 小时前
二分算法及常见用法
数据结构·c++·算法
quikai19819 小时前
python练习第三组
开发语言·python
JIngJaneIL9 小时前
基于Java非遗传承文化管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
吃西瓜的年年9 小时前
1. 初识C语言
c语言·开发语言
mmz12079 小时前
前缀和问题(c++)
c++·算法·图论
CHANG_THE_WORLD10 小时前
Python 字符串全面解析
开发语言·python
努力学算法的蒟蒻10 小时前
day27(12.7)——leetcode面试经典150
算法·leetcode·面试
不会c嘎嘎10 小时前
深入理解 C++ 异常机制:从原理到工程实践
开发语言·c++
永远都不秃头的程序员(互关)10 小时前
C语言 基本语法
c语言·开发语言
甄心爱学习11 小时前
CSP认证 备考(python)
数据结构·python·算法·动态规划