如果我有一个二维数组,表示一维中每个元素的方法是使用 row_num * row_width + column
如果我想要 row_num,column 处的元素。但我正在努力解决的问题是,如果我有一个 3x3 二维数组(仅作为示例),一维数组应该有多大。 3 ^ 3 = 9 不应该足以用于一维数组吗?但是对于元素 3,2,索引将是 3 * 3 + 2 = 11。或者大小应该是我想要处理的最大索引的大小 - 例如3 * 3 + 3 = 12 如果我想寻址 3x3 二维数组中的所有元素?
最佳答案
您需要从零开始计数(零索引),其中行和列为 0,1,2。
那么元素“(3,2)”真的是“(2, 1)”,即2*3+1=7,最后的元素“(3,3)”真的是“(2,2)” ",即 2*3+2=8。这是一维数组中的最后一个元素,因为它们也是从 0 开始计数的,所以这 9 个元素是 0,1,2,3,4,5,6,7,8。
例如:
>>> for r in 0,1,2:
... for c in 0,1,2:
... print r, c, r*3+c
...
0 0 0
0 1 1
0 2 2
1 0 3
1 1 4
1 2 5
2 0 6
2 1 7
2 2 8
关于algorithm - 将二维数组映射到一维数组时的数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12079814/