使用重复策略在2D数组中查找邻居

时间:2018-08-13 18:12:03

标签: java arrays matrix multidimensional-array nearest-neighbor

存在一种简单紧凑的方法(非递归),以重复策略在高度为H,宽度为W的2D数组中,在距给定坐标D处找到所有邻居。

enter image description here

例如,在上图中,我们有一个高度和宽度为3的2D数组/矩阵。现在,Im试图归档的是获取距离为2的元素/距离为1,跳数为1的邻居, 6,1,2,0,4,5,3(红色圆圈)使用重复策略(ps,而不创建具有9个小矩阵的较大矩阵)。

有人知道如何获得这个秘诀

enter image description here

1 个答案:

答案 0 :(得分:1)

据我对问题的理解,这可以通过嵌套循环来实现。

假设目标值具有“ x”和“ y”坐标,则跳为“ h”。

假设数组大小为 m X n

然后进行两个循环:

  Outer loop 'i' from x-h to x+h

    Inner loop 'j' from y-h to y+h

        Elements arr[i%m][j%n] are your neighbors

更新:根据对问题的理解,我已经更新了代码。这样,您可以执行“跃点”步骤,并且您将获得“ ArrayIndexOutOfBoundException”。