题目描述:

思路:重新构造矩阵,即重新赋值;
首先,把原矩阵里面里面所有值都放在一个vector里面(以便后面使用);
然后,判断将要构造的矩阵的大小与原矩阵的大小;
最后,如果能构造新矩阵,就按照给定的行与列重新赋值;
代码如下:
class Solution {
public:
vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
vector<vector<int>> res(r,vector<int>(c));
vector<int> n;
for(int i=0;i<nums.size();i++){
for(int j=0;j<nums[i].size();j++){
n.push_back(nums[i][j]);
}
}
if(r*c!=n.size()) return nums;
int k=0;
for(int i=0;i<r;i++){
int j=0;
while(j<c&&k<n.size()){
res[i][j]=n[k];
j++;
k++;
}
}
return res;
}
};
来源:CSDN
作者:peachzy
链接:https://blog.csdn.net/peachzy/article/details/103587782