[算法]深度优先搜索(DFS)

前言&吐槽

  我看网上都说深度优先搜索是一种遍历树和图的算法,但是我还没学数和图啊!老师就讲了。

  不过这种算法也确实挺好用的,下面我们就来介绍一下。

介绍

  DFS形象点来说就是“不撞南墙不回头”,必须要一条路走到黑,之后再考虑其他路。

  因此DFS最重要的部分就是回溯了。

  而关于此算法的步骤,网上总结得已经很好了:

    1.递归下去

    2.回溯上来

  下面我们画图来更好得理解一下这种算法。

图示

首先,假设我们现在的任务是从A走向B

 

 我们可以看到,在每一个岔路口,都只有向左向右两种方向,那么DFS则是先一条路走到低。

 

 发现走不到,那么回到上一个节点

 

 发现不行,那么回到上面的节点,遍历父节点右边的那条路,如此循环下去,直到找到路径。

 

 实战

跳马问题

奇怪的电梯

posted @ 2022-03-19 15:14  帝皇の惊  阅读(110)  评论(0)    收藏  举报