一、走迷宫
源码:
from collections import deque #双端队列
n,m=map(int,input().split())
mapp=[list(map(int ,input().split())) for i in range(n)]
mark=[[-1]*m for i in range(n)]
def bfs():
queue =deque([]) #队列中插入的是每个坐标的x,y 所以是list形式的
queue.append([0,0]) #先放入的是根节点,也就是0 0
idx=[0,-1,0,1]
idy=[1,0,-1,0]
mark[0][0]=0
while queue: #队列为空说明遍历完成,跳出循环
ans=queue.popleft()
for i in range(4):
x=ans[0]+idx[i]
y=ans[1]+idy[i]
if x>=0 and x<n and y>=0 and y<m and mapp[x][y]==0 and mark[x][y]==-1:
#添加路径
mark[x][y] = mark[ans[0]][ans[1]]+1
#更新队列
queue.append([x,y])
return mark[-1][-1]
print(bfs())