这是代码,在走回(2,0)走向(2,1)时列表a中记录路径的值会变(2,0)会变成(2,1)
from copy import deepcopy
x,y = map(int,input().split())
end = [x-1,y-1]
mx = []
start = [0,0]
for i in range(x):
mx.append(list(map(int,input().split())))
a = [[0,0]]
def bfs(e,m,a):
if e == end:
return a
if 0<=e[0]+1< x and m[e[0]+1][e[1]] == 0 and [e[0]+1,e[1]] not in a:
e[0]+=1
a.append(deepcopy(e))
bfs(e,m,a)
elif 0<=e[0]-1 <x and m[e[0]-1][e[1]]== 0 and [e[0]-1,e[1]] not in a:
e[0]-=1
a.append(deepcopy(e))
bfs(e,m,a)
elif 0<=e[1]+1 < y and m[e[0]][e[1]+1]== 0 and [e[0],e[1]+1] not in a:
e[1]=e[1]+1
a.append(deepcopy(e))
bfs(e,m,a)
elif 0<=e[1]-1 <y and m[e[0]][e[1]-1] == 0 and [e[0],e[1]-1] not in a:
e[1]-=1
a.append(deepcopy(e))
bfs(e,m,a)
else:
m[e[0]][e[1]] = 1
a.pop()
e = a[-1]
bfs(e,m,a)
print(bfs(start,mx,a))
全部评论
(0) 回帖