我需要找到从左上角到右下角的最短路径。
规则是它必须从A到B到A到B等等。
参见图片示例:
上图的预期输出是13。
我正在尝试使用 dijkstra 算法在 java 中实现此目的,但随后陷入困境。这是正确的方法吗?
最佳答案
如果目标是找到从左上角到右下角(或任意两点之间)的最短路径,dijsktra 是一种可能的方法,但是您必须根据输入正确构建图形。
在这种情况下,我会选择一个简单的flood-fill
算法。您可以找到几个解释它的在线资源,包括 this video或this article ,所以我不会在这个答案中详细介绍。
如果您正确实现规则(仅限 A 到 B 和 B 到 A),您只需使用 2 个矩阵(一个用于原始字母数组,另一个用于距离)即可找到最短路线。
关于java - 寻找二维数组中的最短路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55239752/