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



这道题思路比较简单,比较容易想到的是先判断m和n构成的二维数组在形式上是否可以由原来的数组转变而成,若不可以返回空数组,若可以直接用一个二重循环遍历一遍即可,时间复杂度 O ( n 2 ) O(n^2) O(n2)

python 复制代码
class Solution(object):
    def construct2DArray(self, original, m, n):
        """
        :type original: List[int]
        :type m: int
        :type n: int
        :rtype: List[List[int]]
        """
        ans = [[0] * n for _ in range(m)]

        if m * n != len(original):
            return []
        elif m == 1:
            return [original]
        else:
            count = 0
            for i in range(m):
                for j in range(n):
                    ans[i][j] = original[count]
                    count += 1
        return ans

题解的写法更为简洁,设original的长度为k,根据题意,如果k≠m*n则无法构成二维数组,此时返回空数组。否则我们可以遍历original,每n个元素创建一个一维数组,放入二维数组中

python 复制代码
class Solution:
    def construct2DArray(self, original: List[int], m: int, n: int) -> List[List[int]]:
        return [original[i: i + n] for i in range(0, len(original), n)] if len(original) == m * n else []
相关推荐
已读不回14313 分钟前
设计模式-策略模式
前端·算法·设计模式
MrZhangBaby35 分钟前
SQL-leetcode—3374. 首字母大写 II
linux·sql·leetcode
CoovallyAIHub1 小时前
标注成本骤降,DINOv3炸裂发布!冻结 backbone 即拿即用,性能对标SOTA
深度学习·算法·计算机视觉
BB学长1 小时前
流固耦合|01流固耦合分类
人工智能·算法
汤永红1 小时前
week3-[分支嵌套]方阵
c++·算法·信睡奥赛
广州智造1 小时前
EPLAN教程:流体工程
开发语言·人工智能·python·算法·软件工程·软件构建
自信的小螺丝钉1 小时前
Leetcode 343. 整数拆分 动态规划
算法·leetcode·动态规划
Q741_1472 小时前
C++ 力扣 438.找到字符串中所有字母异位词 题解 优选算法 滑动窗口 每日一题
c++·算法·leetcode·双指针·滑动窗口
Fine姐2 小时前
数据挖掘3.6~3.10 支持向量机—— 核化SVM
算法·支持向量机·数据挖掘
野渡拾光3 小时前
【考研408数据结构-05】 串与KMP算法:模式匹配的艺术
数据结构·考研·算法