为了好玩,我试图在1D数组中表示一个2D数组。我如何将2维数组映射到1维数组?将二维数组映射到一维数组中
例如,假设我们给出阵列:
char[][] 2dArray = new char[4][4];
在2维空间中,该范围(0,0),(2,2)
将代表9个元素(下面表示为O): O, O, O, X O, O, O, X O, O, O, X X, X, X, X
如果我们代表作为一维阵列的二维阵列:
char[] 1dArray = new char[16];
它看起来像这样:
O, O, O, X, O, O, O, X, O, O, O, X, X, X, X, X
我已经知道我能找到一个单点的指数,我通过公式一维数组:(rows * x + y)
。
即,在给定示例中,2d点(2,3)
将映射到1d索引11
。
给定一对2D坐标,我怎样才能点的矩形截面映射到1D数组?如果可能,我宁愿不使用循环嵌套。
你问一个没有嵌套循环的解决方案,并接受一个使用嵌套循环......做得很好。 – maraca