
算法
文章平均质量分 92
嗯行家啊
慢慢学吧,加油!
展开
-
广度优先搜索和深度优先搜索
文章目录1. 前言2. 广度优先搜索和深度优先搜索1)深度优先搜索2)广度优先搜索3. 深度优先搜索算法框架1)二叉树深度优先搜索模板2)图深度优先搜索模板3)二维矩阵深度优先搜索模板4. 广度优先搜索算法框架1)单源广度优先搜索2)多源广度优先搜索3)双向广度优先搜索1. 前言 深度优先搜索算法的基础是递归,如果你对递归还不熟悉的话,建议先去看看递归的概念,做一些递归的练习题,也可以看我之前写的递归的文章:递归算法详解2. 广度优先搜索和深度优先搜索 在这篇文章中同时总结下广度优原创 2021-11-22 10:21:51 · 8078 阅读 · 1 评论 -
回溯算法及解题模板
文章目录1. 什么是回溯算法?2. 回溯算法的框架3. 针对不同题型的解题模板1.所给数组中的元素互不相同,结果包含所有元素总结1. 什么是回溯算法? 回溯算法其实是一种穷举的搜索方法,利用回溯解决问题就是在穷举所有的可能,然后找到我们想要的答案。使用回溯算法时需要考虑如下的三个问题: (1) 可选列表:所有可作出的选择; (2) 已选列表:也就是之前已经做出的选择; (3) 结束条件:当已选列表满足题目条件,可以结束穷举;2. 回溯算法的框架vector&l原创 2021-11-20 11:06:08 · 2725 阅读 · 0 评论 -
递归算法详解
本篇博客的主要内容如下1. 什么是递归2. 递归三要素3. 递归的优缺点4. 递归的优化1. 什么是递归 相信很多人开始学算法,第一个接触的就是递归,为什么要先学递归呢?这是因为递归是其他算法的基础,像深度优先搜索、分治算法、回溯算法都是在递归的基础上做出一些改进。那到底什么是递归呢?递归 = 递进 + 回归,递进的意思是把复杂的问题逐步的拆解成和原问题类似的子问题,直到我们一眼就能看出子问题的答案为止(也就是递归终止条件);而回归和递进正好相反,当我们求解了最简子问题后,我们就能求解上一层的子问原创 2021-11-15 11:50:31 · 2696 阅读 · 0 评论 -
分治算法详解
本篇博客的主要内容如下1. 什么是分治算法2. 分治算法的解题步骤3. 分治算法的例题1. 什么是分治算法 分治就是 “分而治之”,其本质就是将原问题分解成规模更小的子问题,然后将子问题求解的结果合并成原问题的答案。其实有很多算法本质上都是这个思想,比如说动态规划通过状态转移方程从子问题的最优解推导出全局的最优解,又比如说递归通过递推关系式将问题不断分解成和原问题相似但是规模更小的子问题。2. 分治算法的解题步骤分治的核心思想就是:分解+合并: 分解:将原问题(大问题)分解成和原问题原创 2021-11-10 12:23:15 · 3161 阅读 · 1 评论