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;
}
注意:
- 矩阵转换之后的坐标和原坐标之间的关系
- 注意行列为r*c的二维数组的初始化为res(r,vector
(c,0))