题解 | #迷宫问题#Python DFS
迷宫问题
https://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc
Python 深度优先搜索(Depth First Search,DFS)
def DFS(x, y): global n, m, path #全局变量声明 if x == n-1 and y == m-1: #边界条件,找到终点返回True path.append((x,y)) return True if card[x][y]>0: #是否可以到达该点 return False path.append((x,y)) #记录路径 card[x][y] = 1 #路径痕迹 0 变为 1 说明经过此点 if x+1<n and DFS(x+1, y): #向下 如果没有数组越界 则在下一个点寻找出口 return True if x-1>=0 and DFS(x-1, y):#向上 return True if y+1<m and DFS(x, y+1):#向右 return True if y-1>=0 and DFS(x, y-1):#向左 return True path = path[:-1] #上面四个条件都不满足则进入死胡同,删除该点 return False n, m = map(int, input().split()) path = [] #路径记录 card = [] #保存迷宫 for i in range(n): t = list(map(int, input().split())) card.append(t) DFS(0,0) #从0,0 点出发 for i in path: #遍历输出路径 print(f"({i[0]},{i[1]})")