思路分析:
’ 这道题主要是利用的二维数组到一维数组的映射。 因为每个二维数组都可以转换成一维数组中数字。例如一个m行n列的二维数组中的第i行第j列的元素就可以转换成i*n+j。所以这道题目就是把原数组中的元素映射回题目要求的r行c列中的位置。需要注意的是,需要事先判断题目给出的二维数组能不能装得下。
代码实现:
class Solution {
public:
vector<vector<int>> matrixReshape(vector<vector<int>>& mat, int r, int c) {
vector<vector<int>>a(r,vector<int>(c));
int m=mat.size();
int n=mat[0].size();
if(r*c!=m*n)
{
return mat;s
}
for(int i=0;i<m*n;i++)
a[i/c][i%c]=mat[i/n][i%n];
return a;
}
};