题解 | 迷宫问题
迷宫问题
https://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc
m, n = map(int, input().split()) maze = [[0] * n for _ in range(m)] for i in range(m): maze[i] = list(map(int, input().split())) res = [] def ahead(i, j, pos=[(0, 0)]): #四个方向试探 if j + 1 < n and maze[i][j + 1] == 0: if (i, j + 1) not in pos: ahead(i, j + 1, pos + [(i, j + 1)]) if j - 1 >= 0 and maze[i][j - 1] == 0: if (i, j - 1) not in pos: ahead(i, j - 1, pos + [(i, j - 1)]) if i + 1 < m and maze[i + 1][j] == 0: if (i + 1, j) not in pos: ahead(i + 1, j, pos + [(i + 1, j)]) if i - 1 >= 0 and maze[i - 1][j] == 0: if (i - 1, j) not in pos: ahead(i - 1, j, pos + [(i - 1, j)]) #找到目标点,将这一分pos拷贝输出打印 if (i, j) == (m - 1, n - 1): for p in pos: print("(" + str(p[0]) + "," + str(p[1]) + ")") ahead(0, 0)