题解 | 迷宫问题(回溯,抄的)

dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]

def dfs(i, j):
    if i == m - 1 and j == n - 1:
        for (pi, pj) in pos:
            print('({0},{1})'.format(pi, pj))
        return
    
    for k in range(4):
        x = i + dx[k]
        y = j + dy[k]
        if 0 <= x < m and 0 <= y < n and mat[x][y] == 0:
            pos.append((x, y))
            mat[x][y] = 1
            dfs(x, y)
            mat[x][y] = 0 # 回溯
            pos.pop()

m, n = map(int, input().strip().split())
mat = []
for i in range(m):
    mat.append(list(map(int, input().split())))
pos = [(0, 0)]
# print(mat)
dfs(0, 0)

全部评论

相关推荐

小叮当411:应该是1-3个月吧
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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