我有点理解寻路的概念,以及程序如何以最有效的方式从 A 点寻找 B 点,并且对 A* 的概念有点熟悉。但是,如果不是试图找到一条穿过迷宫的路,而是试图在封闭的迷宫中找到最长的走廊,而走廊不能在对角线上呢?
这是我的示例迷宫:
1 1 0 1
0 0 1 1
1 0 1 0
1 0 1 0
如果使用 1 作为允许路径,使用 0 作为无效路径,则最长路径为 5,坐标为 (0,3), (1,2), (1,3), (2,2), (3, 2)。
我将如何递归地找到这些信息?
我一直在绞尽脑汁思考如何从 (0,0) 开始向上、向下、向左、向右移动,看看这些是否可能移动,但我想出的任何版本都会遇到重复和重复计数。