代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
qq_589666058 分钟前
Java继承
java·开发语言
八角.。19 分钟前
面向对象-多态
java·开发语言
@卓越俊逸_角立杰出@26 分钟前
快速学会 Java 实现意图识别:从规则匹配到 BiLSTM 分类器
java·开发语言·人工智能
小小龙学IT30 分钟前
simdjson:利用 SIMD 指令实现 GB/s 级 JSON 解析的 C++ 开源库
开发语言·c++·json
AndrewHZ37 分钟前
【LLM技术全景】RAG 从原理到实战——检索增强生成完整指南
人工智能·深度学习·算法·llm·检索增强·生成式模型·rag
LuminousCPP37 分钟前
单链表专题(三)-刷题复盘篇:从快慢指针到环形链表 II 数学推导
数据结构·经验分享·笔记·学习·算法·链表
-dzk-40 分钟前
【贪心算法】LC 121.买卖股票的最佳时机
算法·贪心算法
A_nanda40 分钟前
c#WPF开发常见问题
开发语言·c#·wpf
hanlin0342 分钟前
动态规划专练:力扣第718、1143题
算法·leetcode·动态规划
ChaoZiLL1 小时前
二叉树经典例题
数据结构·算法