其他分享
首页 > 其他分享> > leetcode(力扣) 2022. 将一维数组转变成二维数组(新年快乐)

leetcode(力扣) 2022. 将一维数组转变成二维数组(新年快乐)

作者:互联网

文章目录

今天元旦,抽时间上来刷个每日一题,不出所料,力扣给了个彩蛋,今天的每日一题题号2022。题目是将一位数组变成二维,2021 -> 2022 可以嘛~

题目描述

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

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

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

在这里插入图片描述
输入: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] ,构成二维数组的第二行。

思路分析

入门级题目,毕竟元旦,寓意一下哈哈。。

对于无法构成所要求的数组,就是所给的一维数组的数无法组成要求的二维数组。即 m * n != len(original)

直接用遍历,每次相隔n个数就当作一个一维数组,添加到答案的二维数组集合里,题目没什么难度,注意m和n别弄反了就行。

完整代码

class Solution:
    def construct2DArray(self, original: List[int], m: int, n: int) -> List[List[int]]:
        res = []
        if len(original) != n *m:
            return res
        for i in range(0,len(original),n):
            print(original[i:i+n])
            res.append(original[i:i+n])
        return res

标签:新年快乐,题目,int,res,力扣,二维,数组,original
来源: https://blog.csdn.net/qq_38737428/article/details/122268200