题解 | #迷宫问题#
迷宫问题
https://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc
from collections import deque n,m=map(int,input().split()) lst=[[]]*n for i in range(n): lst[i]=input().split() parent_map={} pq=deque([(0,0)]) visited={(0,0)} while pq: current_x,current_y=pq.popleft() for neix,neiy in[(current_x+1,current_y),(current_x,current_y+1),(current_x-1,current_y),(current_x,current_y-1)]: if neix==n or neiy==m or neix==-1 or neiy==-1: continue if lst[neix][neiy]=="0": if (neix,neiy) not in visited: visited.add((neix,neiy)) pq.append((neix,neiy)) parent_map[(neix,neiy)]=(current_x,current_y) if neix==n-1 and neiy==m-1: path=[(neix,neiy)] while path[-1]!=(0,0): path.append(parent_map[path[-1]]) path.reverse() for i in path: print("(",i[0],",",i[1],")",sep="") break