这题思路我也想到了,基本和题解一样,就是有一句二维vector的初始化不会写,找了一下写法
vector>ans(r,vector (c));//这句没写出来,卡半天
核心代码是这句
ans[i / c][i % c] = mat[i / n][i % n];
完整代码如下
#include#include using namespace std; class Solution { public: vector > matrixReshape(vector >& mat, int r, int c) { int m = mat.size(); int n = mat[0].size(); if (m * n != r * c)return mat; vector >ans(r,vector (c));//这句没写出来,卡半天 for (int i = 0; i < m * n; i++) { ans[i / c][i % c] = mat[i / n][i % n]; } return ans; } }; int main() { Solution test; vector >mat = { {1,2,3,4} }; int r = 2; int c = 2; vector >ans=test.matrixReshape(mat, r, c); for (int i = 0; i < ans.size(); i++) { for (int j = 0; j < ans[i].size(); j++) { cout << ans[i][j]; } } }



