美文网首页
566. Reshape the Matrix

566. Reshape the Matrix

作者: 乘瓠散人 | 来源:发表于2017-11-14 13:23 被阅读31次

    我的解法:

    注意 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;
        }
    };
    

    相关文章

      网友评论

          本文标题:566. Reshape the Matrix

          本文链接:https://www.haomeiwen.com/subject/uvoxvxtx.html