https://leetcode-cn.com/problems/reshape-the-matrix/
思路:简单模拟。
class Solution {
public:
vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
int n=nums.size(),m=nums[0].size();
if(r*c!=m*n)
return nums;
vector<vector<int>> matrix(r,vector<int>(c));
int curr=0,curc=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
matrix[curr][curc]=nums[i][j];
if(++curc==c)
++curr,curc=0;
}
}
return matrix;
}
};
极简版代码:
class Solution {
public:
vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
int n=nums.size(),m=nums[0].size();
if(r*c!=m*n)
return nums;
vector<vector<int>> matrix(r,vector<int>(c));
for(int i=0,mn=m*n;i<mn;i++)
matrix[i/c][i%c]=nums[i/m][i%m];
return matrix;
}
};