#给出地图矩阵、初始点、终止点,得出所有可能路径
#属于深度优先搜索算法?
class solution:
start = None
end = None
map = None
result = [] #记录所有路径结果
dirs = [
lambda x, y: (x + 1, y),
lambda x, y: (x - 1, y),
lambda x, y: (x, y - 1),
lambda x, y: (x, y + 1)
]#判断方向是否合理
@classmethod
def maze(cls,start,end,road_passed):
x_start = start[0]
y_start = start[1]
if(start==end):
cls.result.append(road_passed)
return True
flag = 0 #判断是否存在合法方向
for dir in cls.dirs:
point = dir(x_start,y_start)
if(cls.map[point[0]][point[1]]==0 and (point[0],point[1]) not in road_passed):
cls.maze(point,end ,road_passed+[point])
flag += 1
if(flag==0):
return False #若不存在合法方向,终止递归
solution.map = [
[1, 1, 1, 1
迷宫问题之寻找所有可能不重复路径
最新推荐文章于 2024-07-25 18:22:10 发布