DeepSeek LeetCode 2022.将一维数组转成二维数组 Python3实现
针对 LeetCode 2022,给你几种 Python3 的实现方式,可按个人喜好选用:
方法一:逐行切片(推荐,最 Pythonic)
```python
class Solution:
def construct2DArray(self, original: List[int], m: int, n: int) -> List[List[int]]:
if len(original) != m * n:
return []
return [original[i * n : (i + 1) * n] for i in range(m)]
```
方法二:索引计算
```python
class Solution:
def construct2DArray(self, original: List[int], m: int, n: int) -> List[List[int]]:
if len(original) != m * n:
return []
res = [[0] * n for _ in range(m)]
for idx, val in enumerate(original):
res[idx // n][idx % n] = val
return res
```
方法三:迭代器(进阶版)
```python
from typing import List
class Solution:
def construct2DArray(self, original: List[int], m: int, n: int) -> List[List[int]]:
if len(original) != m * n:
return []
it = iter(original)
return [[next(it) for _ in range(n)] for _ in range(m)]
```
复杂度
· 时间复杂度:O(m * n)
· 空间复杂度:O(1)(不算返回结果)
三种方法都可以直接通过。
更多推荐


所有评论(0)