题解 | 迷宫问题
迷宫问题
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)