存在一种简单而紧凑的方法(非递归),使用重复策略在一个高度H和宽度W的二维数组中从给定的坐标D处找到所有的邻域。

例如,在上面的图像中,我们有一个高度和宽度为3的二维数组/矩阵。现在,我想要存档的是,元素2的邻域与距离/跃比为1,在这种情况下,它是7、8、6、1、2、0、4、5、3(用红色圈),使用重复策略(P.S而不创建包含9个小矩阵的较大矩阵)。
有谁知道如何获得这个方法/算法吗?

发布于 2018-08-14 10:24:36
根据我对这个问题的理解,这可以通过嵌套循环来实现。
假设目标值有'x‘和'y’坐标,跳到'h‘。
假设数组大小为m×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‘步骤,并且您还可以not get 'ArrayIndexOutOfBoundException’。
https://stackoverflow.com/questions/51828253
复制相似问题