老鼠走迷宫问题的递归实现,是对递归思想的一种应用。
https://www.cnblogs.com/MrSaver/p/5940386.html
见 solution.py
构造迷宫如下:
[1, 1, 1, 1, 1, 1, 1]
[1, 0, 0, 0, 0, 0, 1]
[1, 0, 1, 0, 1, 0, 1]
[1, 0, 0, 0, 0, 1, 1]
[1, 1, 0, 1, 0, 1, 1]
[1, 0, 0, 0, 0, 0, 1]
[1, 1, 1, 1, 1, 1, 1]
其中 1 代表墙壁,0 代表通路
搜索时先将搜索过的位置置 2,标记,以不要继续搜索。
然后看四个方向哪个方向是 0,如果是就递归搜索。
四个方向搜索结果获取结果,如果其中一个是 True,那就搜索成功。
如果失败,那就证明当前点不可走,将位置置回 0。
最后标记为 2 的就是正确的路径。
上述迷宫,经过代码运行之后,结果如下:
[1, 1, 1, 1, 1, 1, 1]
[1, 2, 0, 0, 0, 0, 1]
[1, 2, 1, 0, 1, 0, 1]
[1, 2, 2, 0, 0, 1, 1]
[1, 1, 2, 1, 0, 1, 1]
[1, 0, 2, 2, 2, 2, 1]
[1, 1, 1, 1, 1, 1, 1]
其中 2 的位置就是迷宫通路。