北京建设规划许可证网站微信指数查询
题目
来源
844. 走迷宫 - AcWing题库
思路
BFS的模板题,用队列实现,可参考:AcWing 844. 走迷宫(数组模拟,C++STL, python、打印路径) - AcWing;其他详见代码。
代码
def bfs():d[0][0]=0queue=[(0,0)]dx=[-1,0,1,0]dy=[0,-1,0,1]while queue: #队列不能为空x,y=queue.pop(0)for i in range(4): #四个方向去搜索a=x+dx[i]b=y+dy[i]if a>=0 and a<n and b>=0 and b<m and d[a][b]==-1 and g[a][b]==0: #说明可以走通queue.append((a,b)) #入队列d[a][b]=d[x][y]+1 #更新距离print(d[n-1][m-1])n,m=map(int,input().split())
g=[[-1 for j in range(m)] for i in range(n)] #地图
d=[[-1 for j in range(m)] for i in range(n)] #距离(每个位置到初始位置的距离)
for i in range(n):col=list(map(int,input().split()))for j in range(m):g[i][j]=col[j] #处理输入
bfs()