两个测试点中起始点为障碍物,不符合常规迷宫逻辑
20查看
不是哥们,你起始点是障碍物你怎么走
有两个测试点是障碍物,起始点是障碍物还走什么。详细内容看代码中的注释
import os
import sys
from collections import deque
n,m=map(int,input().split())
s=[list(map(int,input().split())) for _ in range(n)]
x1,y1,x2,y2=map(int,input().split())
x1-=1
y1-=1
x2-=1
y2-=1
xl=[1,-1,0,0]
yl=[0,0,1,-1]
l=[[-1]*m for _ in range(n)]
if s[x2][y2]==0: #这里改成if s[x1][y1]==0 and s[x2][y2]==0: 会有两个测试点不通过
print('-1')
sys.exit(0)
q=deque([(x1,y1)])
l[x1][y1]=0
while q:
x,y=q.popleft()
for i in range(4):
xx,yy=x+xl[i],y+yl[i]
if 0<=xx<n and 0<=yy<m and s[xx][yy]==1 and l[xx][yy]==-1:
l[xx][yy]=l[x][y]+1
q.append((xx,yy))
print(l[x2][y2])
copy
#课程纠错
| 关注
你的回复
请
登录
后回复