zoukankan      html  css  js  c++  java
  • 566. Reshape the Matrix

    In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new one with different size but keep its original data.
    Example 1:

    Input:
    nums =
    [[1,2],
     [3,4]]
    r = 1, c = 4
    Output:
    [[1,2,3,4]]
    Explanation:
    The row-traversing of nums is [1,2,3,4]. The new reshaped matrix is a 1 * 4 matrix, fill it row by row by using the previous list.
    

    Example 2:

    Input:
    nums =
    [[1,2],
     [3,4]]
    r = 2, c = 4
    Output:
    [[1,2],
     [3,4]]
    Explanation:
    There is no way to reshape a 2 * 2 matrix to a 2 * 4 matrix. So output the original matrix.
    

    Note:

    1. The height and width of the given matrix is in range [1, 100].
    2. The given r and c are all positive.

    我的照葫芦画瓢代码:
    精巧想法是: res[i / c][i % c] = A[i / cc][i % cc]; 老服气了!
    副产品: vector<vector<int>>vec(m,vector<int>(n,0));
    m*n的二维vector,所有元素为0

    vector<vector<int>> matrixReshape(vector<vector<int>>& A, int r, int c) {
        int rr = A.size(), cc = A[0].size();
        if (rr * cc != r * c) return A;
    
        vector<vector<int>> res(r, vector<int>(c, 0));
        for (int i = 0; i < r * c; i++)
            res[i / c][i % c] = A[i / cc][i % cc];
        return res;
    }
    
  • 相关阅读:
    设置允许跨域访问
    设计模式学习笔记(1)——单例模式
    yii2 request文件简介
    YII2 添加全局自定义函数
    第2章 查询基础
    第1章 数据库和SQL
    第0章 绪论
    用户贷款风险预测—特征提取
    用户贷款风险预测—数据探索
    Python 数据分析—画图
  • 原文地址:https://www.cnblogs.com/ZhongliangXiang/p/7361823.html
Copyright © 2011-2022 走看看