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;
    }
    
  • 相关阅读:
    12.Django与ajax
    11.Django的分页器paginator
    10.中间键Middleware
    09.用户认证auth模块
    08.form组件
    07.会话跟踪技术cookie与session
    06.orm模型层
    05.Django模板层
    04.Django视图函数
    03.DjangoURL路由
  • 原文地址:https://www.cnblogs.com/ZhongliangXiang/p/7361823.html
Copyright © 2011-2022 走看看