目录
Description
在一个二维矩阵中,从给定的起点出发,通过向上、向下、向左、向右四个方向移动,寻找一条到达终点的路径。其中,矩阵中的数字0表示可走路径,数字1表示障碍物,不能通过。题目要求输出一条从起点到终点的路径,如果不存在这样的路径,则输出"无法到达终点"。
18276走迷宫算法
示例:
# 迷宫地图,1表示墙壁,0表示可走路径
maze = [
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 1, 0, 1, 1, 0, 1, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 1, 1, 0, 1, 1, 1, 1],
[1, 0, 1, 0, 0, 0, 0, 1],
[1, 0, 0, 1, 1, 1, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 1]
]
# 起点和终点坐标
start = (1, 1)
end = (6, 6)
# 走迷宫
def maze_solver(maze, start, end):
directions = [(0, 1), (0, -1), (1, 0), (-1, 0)] # 右、左、下、上
queue = [start]
visited = set(queue)
path = {start: None}
while queue:
current = queue.pop(0)
if c