题解 | 迷宫问题

迷宫问题

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



h, w = [int(i) for i in input().split()]
std = []
for i in range(h):
    row = [int(i) for i in input().split()]
    std.append(row)

def walk(i, j, pos=[(0, 0)]):
    if j+1 < w and std[i][j+1] == 0:
        if (i, j+1) not in pos:
            walk(i, j+1, pos=pos+[(i, j+1)])
    if j-1 >= 0 and std[i][j-1] == 0:
        if (i, j-1) not in pos:
            walk(i, j-1, pos=pos+[(i, j-1)])
    if i+1 < h and std[i+1][j] == 0:
        if (i+1, j) not in pos:
            walk(i+1, j, pos=pos+[(i+1, j)])
    if i-1 >= 0 and std[i-1][j] == 0:
        if (i-1, j) not in pos:
            walk(i-1, j, pos=pos+[(i-1, j)])
    if i == h - 1 and j == w - 1:
        for i in pos:
            print("".join(str(i).split()))

walk(0, 0)


全部评论

相关推荐

点赞 评论 收藏
分享
07-02 13:52
武汉大学 golang
骗你的不露头也秒
牛客87776816...:😃查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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