代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
sycmancia14 分钟前
C++——多态
开发语言·c++
苏纪云21 分钟前
蓝桥杯知识点——day2
数据结构·算法·蓝桥杯
Wect22 分钟前
LeetCode 52. N 皇后 II:回溯算法高效求解
前端·算法·typescript
t1987512829 分钟前
基于多尺度特征融合与自适应权重优化的水下图像对比度与边缘增强MATLAB方法
开发语言·matlab
iFlyCai35 分钟前
数据结构与算法之希尔排序
数据结构·算法·排序算法
Nontee39 分钟前
Leetcode Top100答案和解释 -- Python版本(矩阵)
python·leetcode·矩阵
lcreek1 小时前
LeetCode2208. 将数组和减半的最少操作次数、LeetCode2406.将区间分为最少组数
python·算法
shehuiyuelaiyuehao1 小时前
算法1,移动零
数据结构·算法·排序算法
shehuiyuelaiyuehao1 小时前
算法2,复写零
数据结构·算法
像污秽一样1 小时前
算法设计与分析-算法效率分析基础-习题1.1
c语言·数据结构·c++·算法