LeetCode:566. Reshape the Matrix

来源:互联网 发布:免费网络图书馆 编辑:程序博客网 时间:2024/06/06 08:45

代码:

class Solution {
public:
    vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
        int m = nums.size(), n = nums[0].size();
        if (m * n != r * c) {
            return nums;
        }


        vector<vector<int>> res(r, vector<int>(c, 0));
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                int k = i * n + j;
                res[k / c][k % c] = nums[i][j];
            }
        }


        return res;
    }
};


思路:

(1)获得原矩阵的元素个数,与新矩阵的元素个数比较,如果两者元素个数不一致,那么返回原矩阵

(2)如果元素个数一致,那么将原矩阵里的元素按行排列提取出来,然后按行排列输入到新矩阵里面

0 0