题解 | #迷宫问题#
迷宫问题
https://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc
import sys
lis = []
for line in sys.stdin:
lis.append([int(x) for x in line.split()])
m, n = lis[0][0], lis[0][1]
matrix = lis[1:]
path = []
res = []
visited = [[0]* n for _ in range(m)] #标记是否访问过了,访问过记为1,
def traversal(i, j):
# nonlocal path, m, n
if not 0 <= i <= m-1 or not 0 <= j <= n-1: return
if matrix[i][j] or visited[i][j]: return
path.append([i, j])
visited[i][j] = 1 #标记已访问的点
if i == m - 1 and j == n-1:
res.append(path[:]) # 如果走到尽头,添加路径到结果
return
traversal(i+1, j)
traversal(i-1, j)
traversal(i, j+1)
traversal(i, j-1)
path.pop() #回溯
visited[i][j] = 0
return
traversal(0, 0)
res = res[0]
for i in res:
print('('+str(i[0])+','+str(i[1])+')')
查看30道真题和解析
