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 []
相关推荐
学学酱快乐24 分钟前
2026年PMP考试生命周期选择决策树精讲:从需求判断到混合型统一框架的应试全攻略
算法·决策树·机器学习·pmp新版考试大纲·pmp新题型·pmp培训哪家好·pmp培训机构推荐
傅科摆 _ py38 分钟前
动态规划复习
算法·动态规划
Wang's Blog1 小时前
PostgreSQL笔记49:向量检索核心算法、索引调优与过滤策略深度解析
笔记·算法·postgresql
疯狂打码的少年1 小时前
【数据结构】交换类排序:冒泡与快速排序
数据结构·笔记·算法·排序算法
Nil2082 小时前
leetcode 108有序数组转换为二叉搜索树
数据结构·算法·leetcode
高频因子挖掘机2 小时前
QuantDash 成交量单位统一实战:从“手”到“股”的跨市场量化数据清洗全流程
后端·算法·github
hn小菜鸡2 小时前
LeetCode 763、划分字母区间
数据结构·算法·leetcode
Escalating_xu2 小时前
【C++ STL简介】从六大组件到容器、迭代器与算法协作
java·c++·算法
纪念 2293 小时前
算法二叉树(一)
算法
liulilittle3 小时前
llmx 学习手册 06 —— CPU 指令集优化(AVX-512 三层演进)
c++·学习·算法·ai·llm