algorithm - 将二维数组映射到一维数组时的数组大小

标签 algorithm

如果我有一个二维数组,表示一维中每个元素的方法是使用 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/

相关文章:

algorithm - 单词生成器算法?

python - 2个函数的时空复杂度

algorithm - 紧凑图像缩略图的布局算法

c - 插入链表 : Bug

algorithm - (Set of) List of sets (Cartesian product(s)) 来自对应于列表集的图

algorithm - 单字符括号匹配

algorithm - 什么是获得树的最小顶点覆盖的好算法?

algorithm - 如何判断无向图是否可以涂成红色或黑色,使得不存在两个连续的红色或黑色

algorithm - 算法分配的队列问题

algorithm - 用自由空间连接的正方形填充网格