其他分享
首页 > 其他分享> > LeetCode:2022.将一维数组转变为二维数组

LeetCode:2022.将一维数组转变为二维数组

作者:互联网

解题思路:

1、判断数组original的长度是否为m*n,不是,则返回空数组;相等,则进行下一步。

2、想法:

  1. 生成m*n的二维数组,双重循环遍历original,一个一个填入
  2. 1的优化吧,二维数组第一行为0~n-1,第二行为n~2n-1,直接把这一段数组赋值给二维数组的每一行

本以为自己的想法太简单,结果好像真就是这样,是简单题没跑了。。

想法一的代码就没弄了,想法2的话就是会多一些函数的调用代码如下

public:
    vector<vector<int>> construct2DArray(vector<int>& original, int m, int n) {
        int length = original.size();
        if (length != m*n) {
            return {};
        }
        vector<vector<int>> result;
        result.reserve(m);
        
        for (auto i = original.begin(); i != original.end(); i+=n) {
            result.emplace_back(i, i+n);
        }

        return result;
    }
};

总结几个上面代码一开始自己写的时候范的错译(ps:部分是因为好久没碰,忘记了)

标签:数组,int,LeetCode,vector,result,2022,original,指针
来源: https://blog.csdn.net/m0_52510770/article/details/122266101