题意ref{target=”_blank”}
这里有一种简单的考虑方法:
二维数组可以拼接成一维数组,这里遍历一维数组的下标,然后再分别映射到(r,c) 和 (m,n) 两种坐标上。
C++ 代码
class Solution {
public:
vector<vector<int>> matrixReshape(vector<vector<int>>& mat, int r, int c) {
int m = mat.size(), n = mat[0].size();
if(r*c != m*n) return mat;
vector<vector<int>> res(r, vector<int>(c));
for(int i=0; i<m*n; ++i) {
res[i/c][i%c] = mat[i/n][i%n];
}
return res;
}
};