迷宫问题那可是经典中的经典,最近在学习深度搜索,分享一下最近所学。
深度优先搜索顾名思义,优先考虑深度,一条路走到黑,直到没路了再回头,再换一条路走。
这个是用word表格画的,用来作为迷宫。黑色为墙,白色为路。
我们规定走的方向顺序为右,左,下,上。
那么走的路径为
可以看到走到这里就已经没有路了,那么我们可以引用栈的思路,如果没有路了,我们就回退,知道有路为止,可以看到我们应该回退到
回退到这个岔路口,因为我们规定了行进路线,所以会先往上走,发现又没路了,会退回这个路口然后往下走,一步一步,知道走到终点为止
思路知道了,接下来看看代码怎么写:
首先,我们定义一个二维数组,1为墙,0为路
maze = [
[1,1,1,1,1,1,1,1,1,1],
[1,0,0,1,0,0,0,1,0,1],
[1,0,0,1,0,0,0,1,0,1