vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
vector<int> vec;
for(auto a:nums){
for(auto t:a)
vec.push_back(t);
}
if(vec.size()!=r*c)
return nums;
int n=vec.size();
vector<vector<int>>res;
for(int i=0;i<n;i+=c){
vector<int>v(vec.begin()+i,vec.begin()+i+c);
res.push_back(v);
}
return res;
}
稍微改进
vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
vector<int> vec;
for(auto a:nums){
for(auto t:a)
vec.push_back(t);
}
if(vec.size()!=r*c)
return nums;
int n=vec.size();
nums.clear();
for(int i=0;i<n;i+=c){
vector<int>v(vec.begin()+i,vec.begin()+i+c);
nums.push_back(v);
}
return nums;
}
vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
int sum=0,numR=0;
for(auto a:nums){
sum+=a.size();
}
if(sum!=r*c) return nums;
vector<vector<int>> res;
vector<int> v;
for(auto a:nums){
for(auto t:a){
v.push_back(t);
numR++;
if(numR==c){
res.push_back(v);
v.clear();
numR=0;
}
}
}
return res;
}