【发布时间】:2019-05-10 04:32:43
【问题描述】:
我的问题很简单,但很难做到。我有迷宫的大小和路径的长度。我需要找到完全指定长度的路径。然而,迷宫可以包含有效的更长路径。迷宫总是从 [0, 0] 开始并在 [size X, size Y] 结束。路径长度为 13 的 5x5 迷宫示例:(X: wall, -: path)
---XX
XX-XX
---XX
-XXXX
-----
6x6 迷宫,11 条路径长度(包含另一条大小为 15 的路径)- 有效
------
XX-XX-
---XX-
-XXXX-
-XXXX-
------
我已经尝试了很多算法,但都没有奏效。如果有人能给我一些关于我需要做什么或者我可以在哪里阅读这个问题的提示,那就太好了。
【问题讨论】:
-
您需要一个递归算法来尝试每条路径。您移动到每个单元格尝试移动所有 4 个方向。您需要使用 Dijkstra 算法来确保您不会陷入无限循环。
-
路径可以在其自身的另一部分旁边运行吗?例如。想象一个长度为 9 的 3x3 网格;从左上角到右下角,
R R R D L L L D R R R。路径可以与自身相交吗?换句话说,一个路径单元格是否可以有超过 2 个相邻的邻居。超过 4 个(对角线,即使它不能直接到达它们)? -
“我需要找到完全指定长度的路径。但迷宫可以包含有效的更长路径。” OP 说最短路径有具体长度,显然,自相交路径不是最短的。
-
正如 mingaleg 所说,您的路径有更短的版本 - RRRDDD。
-
您对有效路径的计数有什么要求吗?
标签: algorithm