Python dfs题解 | #迷宫问题#
迷宫问题
https://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc
import sys n = 10 m = 10 matrix = [[0] * m for _ in range(n)] ans = [] move = [(1, 0), (0, 1), (-1, 0), (0, -1)] vis = [[False] * m for _ in range(n)] def dfs(a, b): if a < 0 or a >= n or b < 0 or b >= m or vis[a][b] == True or matrix[a][b]: return False vis[a][b] = True if a == n - 1 and b == m - 1: ans.append((a, b)) return True for x in move: next_a = a + x[0] next_b = b + x[1] if dfs(next_a, next_b): ans.append((a, b)) return True return False while True: try: n, m = map(int, input().split(' ')) matrix = [[0] * m for _ in range(n)] vis = [[False] * m for _ in range(n)] ans = [] for i in range(n): matrix[i] = list(map(int, input().strip().split(' '))) dfs(0, 0) ans.reverse() for i in ans: print('(' + str(i[0]) + ',' + str(i[1]) + ')') except: break