回溯总结

回溯算法模板:

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

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

主要是解决下列问题:

1.组合问题

2.切割问题

3.子集问题

4.排列问题

5.去重问题

待复刷

相关推荐
老鼠只爱大米7 小时前
LeetCode经典算法面试题 #234:回文链表(双指针法、栈辅助法等多种方法详细解析)
算法·leetcode·链表·递归·双指针·快慢指针·回文链表
不穿格子的程序员8 小时前
从零开始写算法——回溯篇3:括号生成 + 单词搜索
算法·深度优先·回溯
程序员-King.1 天前
day154—回溯—分割回文串(LeetCode-131)
算法·leetcode·深度优先·回溯
程序员-King.1 天前
day155—回溯—组合(LeetCode-77)
算法·leetcode·回溯
程序员-King.1 天前
day152—回溯—电话号码的字母组合(LeetCode-17)
算法·leetcode·深度优先·递归
程序员-King.1 天前
day156—回溯—组合总和(LeetCode-216)
算法·leetcode·回溯
程序员-King.1 天前
day153—回溯—子集(LeetCode-78)
算法·leetcode·回溯·递归
程序员-King.2 天前
day143—递归—对称二叉树(LeetCode-101)
数据结构·算法·leetcode·二叉树·递归
不穿格子的程序员2 天前
从零开始写算法——回溯篇2:电话号码的字母组合 + 组合总和
算法·深度优先·回溯
程序员-King.2 天前
day144—递归—平衡二叉树(LeetCode-110)
算法·leetcode·二叉树·递归