• Leetcode 2022. 将一维数组转变成二维数组


    在这里插入图片描述
    给你一个下标从 0 开始的一维整数数组 original 和两个整数 m 和 n 。你需要使用 original 中 所有 元素创建一个 m 行 n 列的二维数组。

    original 中下标从 0 到 n - 1 (都 包含 )的元素构成二维数组的第一行,下标从 n 到 2 * n - 1 (都 包含 )的元素构成二维数组的第二行,依此类推。

    请你根据上述过程返回一个 m x n 的二维数组。如果无法构成这样的二维数组,请你返回一个空的二维数组。

    示例 1:
    在这里插入图片描述

    输入:original = [1,2,3,4], m = 2, n = 2
    输出:[[1,2],[3,4]]
    解释:
    构造出的二维数组应该包含 2 行 2 列。
    original 中第一个 n=2 的部分为 [1,2] ,构成二维数组的第一行。
    original 中第二个 n=2 的部分为 [3,4] ,构成二维数组的第二行。
    

    示例 2:

    输入:original = [1,2,3], m = 1, n = 3
    输出:[[1,2,3]]
    解释:
    构造出的二维数组应该包含 1 行 3 列。
    将 original 中所有三个元素放入第一行中,构成要求的二维数组。
    

    示例 3:

    输入:original = [1,2], m = 1, n = 1
    输出:[]
    解释:
    original 中有 2 个元素。
    无法将 2 个元素放入到一个 1x1 的二维数组中,所以返回一个空的二维数组。
    

    示例 4:

    输入:original = [3], m = 1, n = 2
    输出:[]
    解释:
    original 中只有 1 个元素。
    无法将 1 个元素放满一个 1x2 的二维数组,所以返回一个空的二维数组。
     
    

    提示:

    • 1 <= original.length <= 5 * 10^4
    • 1 <= original[i] <= 10^5
    • 1 <= m, n <= 4 * 10^4

    Code:

    class Solution {
    public:
        vector<vector<int>> construct2DArray(vector<int>& original, int m, int n) {
            vector<vector<int>>res;    
            int total=original.size();
            if(total!=(m*n))
                return res;
            for(int i=0;i<m;i++)
            {
                vector<int>sub;
                for(int j=0;j<n;j++)
                {
                    sub.push_back(original[i*n+j]);
                }
                res.push_back(sub);
            }
            return res;
        }
    };
    
  • 相关阅读:
    hdu 2191 珍惜现在,感恩生活(多重背包)
    《从Paxos到ZooKeeper分布式一致性原理与实践》学习知识导图
    你对ArrayList了解多少?
    JAVA酒店管理系统
    C#酒店管理系统
    C#图书管理系统
    java图书管理系统
    豆瓣高分JAVA书籍,你都读过吗?
    JAVA课程设计----------JAVA学生信息管理系统
    C#学生管理系统
  • 原文地址:https://www.cnblogs.com/xiaohai123/p/16350696.html
Copyright © 2020-2023  润新知