对于一个行数为$m$,列数为$n$,行列下标都从$0$开始编号的二维数组,可以通过下面的方式,将其中的每个元素$(i,j)$ 映射到整数域内,并且它们按照行优先的顺序一一对应着$ [0, m* n )$中的每一个整数。
映射方式即为:$$ (i,j) \rightarrow i * n + j $$
需要i,j从下标为0开始
也以将整数 $x$ 映射回其在矩阵中的下标:
$i = x / n $, $ j = x \% n $
reshape操作
将$m$行$n$列的矩阵转化为$r$行$c$列的矩阵
vector<vector<int>> ans(r, vector<int>(c));
for (int x = 0; x < m * n; ++x) {
ans[x / c][x % c] = nums[x / n][x % n];
}