前言>写此文章的主旨中心是为了给阅读的同学提供一个只有干货+实战的心得体会, 方便没有自己的学习路线的同学能够快速了解一些问题的核心以及解决问题的思路.
当然了这些内容也不是自己思考出来的,也是通过学习别人的内容总结归纳出来的,所以对于博主来说也是一个学习成长以及记录的过程, 有一些不足之处还请谅解, 希望大家都能共同进步, 汲取更多的知识, 早日找到中意的工作~
首先要明确DFS与BFS的概念
DFS(深度优先遍历) : 本质上即为我们之前描述过的标准的回溯算法实现, 即逐层递进.
BFS(广度优先遍历) : 即同一层的所有路径在当次遍历中全部遍历到, 如果存在需要的指定结果, 则直接返回此时的限定步数, 常用来解决 找到某个需要解的最少需要步数问题
DFS这里我们不再赘述了, 之前已经写过很多内容了, 我们这部分主要通过一个问题解决BFS的问题
首先明确BFS的一套标准模板
下面我们用一道题来说明当前模板的使用方式
如leetcode752 打开转盘锁 得到最小打开的次数
首先分析 共有4个拨轮, 每个拨轮每次可以向上或者向下拨动, 所以同一层共有 4 * 2 = 8 种变法
其他需要注意的地方, 还要我们注意 死亡数字的问题, 即到达死亡数字 不可继续行走.
代码如下: