首页 > 其他分享 >代码随想录Day42

代码随想录Day42

时间:2022-12-16 01:12:37浏览次数:47  
标签:代码 随想录 问题 回溯 集合 Day42 backtracking

回溯算法理论基础:

回溯算法的本质是穷举,可以通过剪枝来优化回溯的效率。

回溯问题一般应用于:

组合问题、切割问题、子集问题、排列问题、棋盘问题

组合和排列的区别在于:

组合不强调元素顺序,排列强调元素的顺序。

回溯问题都可以抽象为树形结构,集合的大小和递归的深度构成树的宽度和深度。

 

回溯模板:

1.返回值和参数

2.终止条件

3.回溯遍历搜索的过程

void backtracking(参数) {
    if (终止条件) {
        存放结果;
        return;
    }

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

 

 

 

标签:代码,随想录,问题,回溯,集合,Day42,backtracking
From: https://www.cnblogs.com/dwj-ngu/p/16986361.html

相关文章