迷宫问题,定义一个二维数组 N*M ,如 5 × 5 数组下所示:
maze=[
[0,1,0,0,0],
[0,1,1,1,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,1,1,1,0]
]
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的路线。入口点为[0,0],既第一格是可以走的路
解题思路1,使用深度优先查找,即一条路走到黑,使用栈来存储坐标,能走通的放入栈中并标记,如遇到没有路了,就把栈顶出栈,再寻找此坐标还有没有其他可以走的路
#maze表示迷宫
maze=[
[0,1,0,0,0],
[0,1,1,1,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,1,1,1,0]
]
#表示向四个方向移动坐标
dirs=[
lambda x,y:(x+1,y),
lambda x,y:(x-1,y),
lambda x,y:(x,y+1),
lambda x,y:(x,y-1)
]
def stack_path(x1,y1,x2,y2):
#

最低0.47元/天 解锁文章
1954

被折叠的 条评论
为什么被折叠?



