题解 | #迷宫问题#

迷宫问题

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

全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 13:47
点赞 评论 收藏
分享
06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务