文章目录
今天元旦,抽时间上来刷个每日一题,不出所料,力扣给了个彩蛋,今天的每日一题题号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