题解 | 迷宫问题

h, w = map(int, input().split())
s = [list(map(int, input().split())) for _ in range(h)]

ans = []
vis = [[False for _ in range(w)] for _ in range(h)]
def dfs(i, j):
    vis[i][j] = True
    directions = [(0, 1), (1, 0), (-1, 0), (0, -1)]
    for dx, dy in directions:
        nx, ny = i+dx, j+dy
        if not vis[h-1][w-1] and 0<=nx<h and 0<=ny<w and s[nx][ny] == 0 and not vis[nx][ny]:
            dfs(nx, ny)
            
    if vis[h-1][w-1]:
        ans.append((i,j))

dfs(0, 0)
ans = reversed(ans)
for i in ans:
    print(f'({i[0]},{i[1]})')

全部评论

相关推荐

在改简历的大卫很认真:天天有面试 = 你已经在 offer 门口了。 海投能面成这样,说明你的简历、基础、学历都是过关的,缺的只是一次刚好匹配的缘分。 关于你说的 SQL 恐惧,我帮你捋一下: - 面试里考来考去,真就那几类: 分组、去重、关联、子查询、窗口函数(row_number、rank、sum 开窗) ​ - 面试官要的不是“写得花里胡哨”,而是思路稳、不出错。 你恐惧的本质不是不会, 是怕临场卡壳、怕写错、怕被追问。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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