LeetCode 2022.将一维数组转变成二维数组【C++】

G.X.Y~苏 2022-01-01 15:35:48

一、题目

给你一个下标从 0 开始的一维整数数组 original 和两个整数 m 和  n 。你需要使用 original 中 所有 元素创建一个 m 行 n 列的二维数组。

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

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

二、解题思路

先判断能否构成一个二维数组。如果能,则可以给二维数组的每一个元素直接赋值,如果不能,则返回一个空数组。

三、代码

class Solution {
public:
    vector<vector<int>> construct2DArray(vector<int>& original, int m, int n) {
        vector<vector<int>> arr(m,vector<int>(n));
        if(original.size()!=m*n)
        return {};
        //第一种方法:
        for (int i=0;i<original.size();i++){
            arr[i/n][i%n]=original[i];
        }
        //第二种方法:
        /*
        int num=0;
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                arr[i][j]=original[num];
                num++;
            }
        }
        */
        return arr;

    }
};

 

 


来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/convert-1d-array-into-2d-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

...全文
25 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,637

社区成员

发帖
与我相关
我的任务
社区描述
欢迎大家来到抱团内卷学习社区,在这里大家可以分享自己的学习笔记,求职心得,一起记录彼此的成长历程。社区群号:94108843,WX公众号:【兴趣使然的草帽路飞】
社区管理员
  • 路  飞
  • 一百个Chocolate
  • 灰小猿
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

最怕你一生碌碌无为,还安慰自己平凡可贵!

努力提高自己的知识储备,助力每一位冲刺大厂的小伙伴!

祝大家前程似锦,offer连连!

注意:每个月活跃积分最高的小伙伴,可以获得社区管理员权限哦!

试试用AI创作助手写篇文章吧