代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
我滴老baby几秒前
Navidrome:飞牛OS安装、曲库导入与远程收听全流程
开发语言·数据库·php
code2cat4 分钟前
Java进阶篇之AtomicLongArray:大数累加、上限检查与溢出边界
java·开发语言
小比特-combat5 分钟前
LVGL_1(使用示例讲解父子关系)
开发语言·前端·javascript
程序员清风6 分钟前
排序算法:从冒泡排序到归并排序
数据结构·算法·排序算法
万年咸鱼6 分钟前
C语言内功心法篇——变量与数据类型
c语言·jvm·算法
开开心心_Every8 分钟前
电脑OCR识别软件支持表格识别图片转Excel
java·开发语言·微信·计算机外设·ocr·intellij-idea·excel
徐小黑ACG9 分钟前
Golang 基础03 函数
开发语言·后端·golang
Do_It_Today15 分钟前
PHP xpath()函数讲解
开发语言·php
YYYing.17 分钟前
【Python系列 (一) 】Python基础疑难杂症
开发语言·python
rannn_11120 分钟前
JVM 垃圾回收面试题全解析:从基础到进阶
java·开发语言·jvm·后端·面试