使用重复策略查找二维数组中的邻居
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'。
存在一种简单而紧凑的方法(非递归)使用重复策略在高度为 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'。