题解 | #迷宫问题#

迷宫问题

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

n, m = map(int, input().split())
maze = [input().split() for _ in range(n)]

def dfs(i, j, route=[(0, 0)]):
    if i == n - 1 and j == m - 1:
        for pos in route:
            print("(" + str(pos[0]) + "," + str(pos[1]) + ")")
    if j + 1 < m and maze[i][j + 1] == "0":
        if (i, j + 1) not in route:
            route.append((i, j + 1))
            dfs(i, j + 1, route)
            del route[-1]
    if j - 1 >= 0 and maze[i][j - 1] == "0":
        if (i, j - 1) not in route:
            route.append((i, j - 1))
            dfs(i, j - 1, route)
            del route[-1]
    if i + 1 < n and maze[i + 1][j] == "0":
        if (i + 1, j) not in route:
            route.append((i + 1, j))
            dfs(i + 1, j, route)
            del route[-1]
    if i - 1 >= 0 and maze[i - 1][j] == "0":
        if (i - 1, j) not in route:
            route.append((i - 1, j))
            dfs(i - 1, j, route)
            del route[-1]
dfs(0, 0)

全部评论

相关推荐

程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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