例如:
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/