我的解法:
注意 vector<vector<int>> 初始化的方法
class Solution {
public:
vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
int m=nums.size();
int n=nums[0].size();
vector<vector<int>> b(m, vector<int>(n));
if(r*c != m*n){
for(int i=0;i<m;i++){
for(int j=0;j<n;j++)
b[i][j]=nums[i][j];
}
return b;
}
queue<int> q;
vector<vector<int>> t(r, vector<int>(c));
for(int i=0;i<m;i++){
for(int j=0;j<n;j++)
q.push(nums[i][j]);
}
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
t[i][j]=q.front();
q.pop();
}
}
return t;
}
};
正解:
class Solution {
public:
vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
int m=nums.size();
int n=nums[0].size();
vector<vector<int>> b(r, vector<int>(c));
if(r*c != m*n){
return nums;
}
for(int i=0;i<r*c;i++){
b[i/c][i%c]=nums[i/n][i%n];
}
return b;
}
};