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 []
相关推荐
NAGNIP15 小时前
大模型框架性能优化策略:延迟、吞吐量与成本权衡
算法
美团技术团队16 小时前
LongCat-Flash:如何使用 SGLang 部署美团 Agentic 模型
人工智能·算法
Fanxt_Ja21 小时前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表
侃侃_天下21 小时前
最终的信号类
开发语言·c++·算法
茉莉玫瑰花茶21 小时前
算法 --- 字符串
算法
博笙困了21 小时前
AcWing学习——差分
c++·算法
NAGNIP21 小时前
认识 Unsloth 框架:大模型高效微调的利器
算法
NAGNIP21 小时前
大模型微调框架之LLaMA Factory
算法
echoarts21 小时前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
Python技术极客21 小时前
一款超好用的 Python 交互式可视化工具,强烈推荐~
算法