使用重复策略查找二维数组中的邻居

Find the neighbours in a 2D array with repeat strategy

存在一种简单而紧凑的方法(非递归)使用重复策略在高度为 H 宽度为 W 的二维数组中查找距给定坐标距离为 D 的所有邻居。

例如,在上图中,我们有一个高度和宽度为 3 的 2D array/matrix。现在我要归档的是使用 distance/hop 1 获取元素 2 的邻居,在这个案例是 7,8,6,1,2,0,4,5,3(用红色圈出)使用重复策略(p.s 没有用 9 个小矩阵创建更大的矩阵)。

有谁知道way/algorithm如何得到这个谢谢

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

假设目标值有 '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

更新:我已经根据我对问题的理解更新了代码。这样,您最多可以执行 'hop' 步,并且您将 而不是 得到 'ArrayIndexOutOfBoundException'。