题解 | #迷宫问题#

迷宫问题

https://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc

while True:
    try:
        m, n = map(int, (input().split()))
        grid = []
        for _ in range(m):
            line = list(map(int, input().split()))
            grid.append(line)
    except:
        break
    else:

        def findPath(grid, i, j, path):
            if not 0 <= i < m or not 0 <= j < n or grid[i][j] == 1: return
            grid[i][j] = 1
            path.append((i, j))
            if i == m - 1 and j == n - 1:
                for cor in path:
                    print('({0},{1})'.format(cor[0], cor[1]))
                return
            else:
                findPath(grid, i - 1, j, path)
                findPath(grid, i + 1, j, path)
                findPath(grid, i, j - 1, path)
                findPath(grid, i, j + 1, path)
                path.pop()

        findPath(grid, 0, 0, [])

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 14:23
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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