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;
}
Slightly improved
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; }