您的位置:首页 > 编程语言 > C语言/C++

566. Reshape the Matrix

2017-09-21 23:48 357 查看

题目

566. Reshape the Matrix

解题思路

判断一下reshape后的矩阵里面的元素数量是否与原来一致,如果不一致则返回原矩阵,如果一致则用一个一维数组把原矩阵的元素储存再重新reshape

具体代码

class Solution {
public:
vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {

int origin_r = nums.size(), origin_c = 0;
if (origin_r)
origin_c = nums[0].size();
if (origin_r * origin_c != r * c)
return nums;

vector<int> tmp;
for (int i = 0; i < origin_r; i++)
for (int j = 0; j < origin_c; j++) {
tmp.push_back(nums[i][j]);

}

vector<vector<int>> nums_t;
for (int i = 0; i < r; i++) {
vector<int> tmp_t;
for (int j = 0; j < c; j++) {
tmp_t.push_back(tmp[i * c + j]);
}
nums_t.push_back(tmp_t);
}

return nums_t;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ leetcode array