爲了好玩,我試圖在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