找到2d网格之外的邻居,将其缩减为1d数组

时间:2016-03-05 18:31:35

标签: arrays 2d dimension-reduction

我有一个二维网格,其宽度和高度始终相同。

[0][1][2]
[3][4][5]
[6][7][8]

我将它的数据源缩减为一维数组。

[0][1][2][3][4][5][6][7][8]

元素的访问起作用,但是这里有一个棘手的部分:如何知道,当处理一维数组时,单元格的邻居是否在网格之外?

例如[5]的右上邻居不在网格中但是使用了计算的偏移索引,我会得到[3]。

有此领域经验的人吗?

1 个答案:

答案 0 :(得分:1)

假设您知道(i)单元格的索引和(2)网格的尺寸(敏感的权利?),以及1D数组中的索引是k,还是2D数组i, j

然后k = i * width + j。因此i = k / widthj = k % width。 (/是整数除法,%是模数)。

获得这两个索引后,您就知道相邻单元格的索引,并且可以正常检查这些索引(我假设您知道如何)。