大家好,我是老郝。本文就迷宫问题,再次将递归的思想和大家一起分享。
迷宫求最短路径
上图为一个随机生成的迷宫,“@”是迷宫出口。要求从指定的位置出发,到出口结束,找到最短路径。
看到这种问题第一思想就是要考虑递归。在递归的基础上再考虑是采用深度优先还是广度优先。一定要形成思维定式,否则很难在短时间内解决问题。
不废话,看代码(JavaScript)使用二维数组构建迷宫,“@”作为出口。
在可以行走的地方(二维数组中“.”的位置)记录当前是第几步,然后在当前的位置向上、下、左、右尝试行走,如果当前位置的上下左右都不行说明当前位置也不合适,重置当前位置为'.'。退回到上一步。