我有一个二维数组,我想从一个点开始遍历到另一个点,并具有以下约束:
- 只允许水平和垂直方向移动
- 路径必须触及数组内的每个强制点
- 阵列没有障碍物
这是一个图形表示:
+---+---+---+---+---+---+
| 0 | 0 | 1 | 0 | 0 | E |
+---+---+---+---+---+---+
| 0 | 1 | 1 | 0 | 1 | 0 |
+---+---+---+---+---+---+
| 0 | 0 | 0 | 0 | 0 | 0 |
+---+---+---+---+---+---+
| S | 0 | 1 | 0 | 0 | 0 |
+---+---+---+---+---+---+
从点 S 开始,算法应该能够找到到达 E 的最短路径,接触所有以“1”表示的点,并且只能水平或垂直移动。
我必须用 Javascript 来实现它(但即使在 C# 或 Java 中也应该不错,我想我可以翻译它:))
哪种算法最适合我的需求?我用谷歌搜索了很多,但只发现了一些相似但不同的 Dijkstra 或 A 星实现(它们不必触及强制性点......)
有人遇到过这样的问题吗?
有人可以帮忙吗?
先感谢您