题解 | #迷宫问题#

迷宫问题

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])+')')

全部评论

相关推荐

黎明azzz:刘女士吓坏了
点赞 评论 收藏
分享
1 2 评论
分享
牛客网
牛客企业服务