题解 | #迷宫问题#
迷宫问题
https://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc
def find_out(list_way,i,j,list_map): row = len(list_map)-1 clo = len(list_map[0])-1 list_map[i][j] = '1' #将当前位置堵上,避免走重复路,造成死循环 if i == row and j == clo: for i in list_way: print('({},{})'.format(i[0],i[1])) return if i+1 <= row : if list_map[i+1][j] == '0': list1 = list_way.copy() list1.append([i+1,j]) find_out(list1,i+1,j,list_map) #不能直接传入list_way,因为下面的移动也会用到当前这个list_way,不能改变它 if j +1 <= clo: if list_map[i][j+1] == '0': list2 = list_way.copy() list2.append([i,j+1]) find_out(list2,i,j+1,list_map) if j -1 >= 0: if list_map[i][j-1] == '0': list3 = list_way.copy() list3.append([i,j-1]) find_out(list3,i,j-1,list_map) if i -1 >= 0: if list_map[i-1][j] == '0': list4 = list_way.copy() list4.append([i-1,j]) find_out(list4,i-1,j,list_map) n ,m = input().split() list_map = [] for i in range(int(n)): t = input().split() list_map.append(t) list_way = [[0,0]] find_out(list_way,0,0,list_map)
原始一点点的解法 文章被收录于专栏
尽量不借助面向对象的思想,自己去实习具体过程