代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
LiLiYuan.3 小时前
【字符串常量池】
java·开发语言·面试
瑞码空间3 小时前
Python爬虫进阶实战笔记
开发语言·python·计算机·python爬虫
16月6日-晴3 小时前
Java面向对象进阶—static
java·开发语言
爱跳舞的烤冷面3 小时前
自学嵌入式第16天(数据结构篇--链表进阶操作)
开发语言
持敬chijing3 小时前
PHP开发-环境搭建-安装phpstudy-vscode工具
开发语言·vscode·php
致Great3 小时前
科研人的 AI,不该只回答问题:我用字节TraeWork 跑了一遍真实研究任务
算法
纵有疾風起3 小时前
线性表的定义与基本操作 — 从逻辑结构到 ADT 接口
数据结构·算法·408·线性表·adt
charlie1145141914 小时前
Cinux · 第一次跳进 Ring 3:用户态与特权隔离
开发语言·c++·操作系统·开源项目
测试_AI_一辰4 小时前
AI Agent 评测最隐蔽的坑-记忆
人工智能·算法·ai·自动化·ai编程
躺不平的理查德4 小时前
Windows C++ 第三方库使用流程备忘录--OpenCV
开发语言·c++