Leetcode 2022. 将一维数组转变成二维数组
Published on 2022-06-07 09:42 in 分类: C/C++ with 萧海~
分类: C/C++

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]]
    解释:
    构造出的二维数组应该包含 22 列。
    original 中第一个 n=2 的部分为 [1,2] ,构成二维数组的第一行。
    original 中第二个 n=2 的部分为 [3,4] ,构成二维数组的第二行。

    示例 2:

    输入:original = [1,2,3], m = 1, n = 3
    输出:[[1,2,3]]
    解释:
    构造出的二维数组应该包含 13 列。
    将 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;
    }
    };
    posted @   萧海~  阅读(34)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · winform 绘制太阳,地球,月球 运作规律
    · AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
    · 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
    · 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
    · 上周热点回顾(3.3-3.9)
    点击右上角即可分享
    微信分享提示
    电磁波切换