566. Reshape the Matrix

我的解法:

注意 vector<vector<int>> 初始化的方法

class Solution {
public:
    vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
        int m=nums.size();
        int n=nums[0].size();
        vector<vector<int>> b(m, vector<int>(n));
           
        if(r*c != m*n){
            for(int i=0;i<m;i++){
                for(int j=0;j<n;j++)
                    b[i][j]=nums[i][j];
            }
            return b;
        }
        queue<int> q;
        vector<vector<int>> t(r, vector<int>(c));
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++)
                q.push(nums[i][j]);
        }
        
        for(int i=0;i<r;i++){
            for(int j=0;j<c;j++){
                t[i][j]=q.front();
                q.pop();
            }
        }
        return t;
        
    }
};

正解:

class Solution {
public:
    vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {
        int m=nums.size();
        int n=nums[0].size();
        vector<vector<int>> b(r, vector<int>(c));
           
        if(r*c != m*n){
            return nums;
        }
       
        for(int i=0;i<r*c;i++){
            b[i/c][i%c]=nums[i/n][i%n];
        }
        return b;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容