存在一种简单紧凑的方法(非递归),以重复策略在高度为H,宽度为W的2D数组中,在距给定坐标D处找到所有邻居。
例如,在上图中,我们有一个高度和宽度为3的2D数组/矩阵。现在,Im试图归档的是获取距离为2的元素/距离为1,跳数为1的邻居, 6,1,2,0,4,5,3(红色圆圈)使用重复策略(ps,而不创建具有9个小矩阵的较大矩阵)。
有人知道如何获得这个秘诀
答案 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”。