2022.将一维数组转变成二维数组
一、坐标转换
class Solution:
def construct2DArray(self, original: List[int], m: int, n: int) -> List[List[int]]:
l = len(original)
res = [] #结果矩阵
if l != m * n:
return res
for i in range(m):
line = [0] * n #每行
for j in range(n):
line[j] = original[i * n + j]
res.append(line)
return res
优化
不用每次都计算坐标转换,因为二维数组顺序遍历的结果就是一维数组,直接用一个全局计数器即可
class Solution:
def construct2DArray(self, original: List[int], m: int, n: int) -> List[List[int]]:
l = len(original)
res = [[0] * n for _ in range(m)] #结果矩阵
if l != m * n:
return []
idx = 0
for i in range(m):
for j in range(n):
res[i][j] = original[idx]
idx += 1
return res
最后更新于