java - 我怎样才能找到矩阵中A到任意B最接近的路径?

标签 java path shortest

例如:

m_array = new int[6][6];<br/> m_array[0] = new int[]{2, 0, 0, 0, 0, 0};<br/> m_array[1] = new int[]{0, 2, 0, 0, 0, 2};<br/> m_array[2] = new int[]{2, 0, 0, 1, 0, 0};<br/> m_array[3] = new int[]{0, 0, 0, 0, 0, 0};<br/> m_array[4] = new int[]{0, 2, 0, 0, 2, 0};<br/> m_array[5] = new int[]{0, 0, 2, 0, 0, 0};<br/>

如何找到最接近的 2 到 1?

我想要一个函数,它返回一个包含数组点的数组路径。例如,我将“m_array”赋予我的函数,它将返回给我最接近的2 for 1,一个像[2,3][3,4][4,4]这样的数组路径

最佳答案

这些是您让我们猜测的事情:

  • 只有一个 1,但有很多 2;
  • 该路径允许对角台阶;
  • 您正在寻找连接 1 和某些 2 的所有路径中最短的一条。

我目前的想法是,有一个度量可以定义任意两点之间的路径长度,因此“到 1 的最短路径的 2”的概念相当于“最接近 1 的 2”的概念”。该度量可以定义为围绕中心 1 必须穿过才能到达 2 的“环”数量:

0 0 0
0 1 0
0 0 2  --> the 2 is in the first ring

0 0 0 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 2 0 0 0 --> the 2 is in the second ring.

如果我所有的假设都是正确的,那么你需要一个给出第一个环、第二个环等的所有成员的函数,以及另一个在环中搜索 2 的函数。然后,最后,你需要一种算法来绘制到 2 的路径。我希望您意识到该路径不是唯一的。一个简单的算法将沿对角线移动,直到与 2 对齐(水平或垂直),然后继续非对角地到达目标。

关于java - 我怎样才能找到矩阵中A到任意B最接近的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11156767/

相关文章:

java - 如何在 ARCore 中捕获每一帧

c - 当使用 %s 在我的路径中设置文本时,它找不到它

c# - 获取 .txt 路径并写入/读取/从中读取

java - 线程 'main' java.lang.NoClassDefFoundError 中的异常

c++ - 带邻接表的 Dijkstra 算法

algorithm - 对于图中的每个顶点,找到距离 d 内的所有顶点

java - Android volley图片缓存问题

Java编译器找不到符号-同一包中的公共(public)类

java - 如何获取计数值分配表

algorithm - 遍历具有负节点和循环节点的图的最佳算法是什么