566. Reshape the Matrix

题目

把一个二维数组转换成r*c的数组。
举例:

原数组[[1,2],[3,4]],现在要转成1*4的[[1,2,3,4]]。
如果不满足转的条件,就返回原数组。

代码

vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
int row=nums.size();int col=nums[0].size();
int totalNum=row*col;
if (totalNum!=r*c)
{
    return nums;
}
vector<vector<int>> res(r,vector<int>(c,0));
for (int i=0;i<totalNum;i++)
{
    res[i/c][i%c]=nums[i/col][i%col];
}
return res;     
}

注意:

  1. 矩阵转换之后的坐标和原坐标之间的关系
  2. 注意行列为r*c的二维数组的初始化为res(r,vector(c,0))