我正在尝试在线性和二维数组之间进行转换。从2d到线性的公式非常简单,但我在解除它时遇到了麻烦(从线性位置获得2d位置)。可能吗?怎么样?
例如,假设我有数组{A,B,C,D,E,F},我知道它的2d数组是:{{A,B,C},{D,E,F }或
[A, B, C]
[D, E, F]
使F位置由(1,2)给出。我如何以算法的方式知道其他元素的位置?
答案 0 :(得分:1)
不确定。假设数组是矩形的,如下所示:
###
###
###
###
不规则,像这样:
#######
#####
##########
(这在Java等某些语言中是可行的),那么你可以使用整数除法和模数运算:
row = i / numColumns
col = i % numColumns
这假设从零开始的数组,以及首先将数组划分为行的约定,然后将每行划分为单元格。