【发布时间】:2025-12-31 12:15:11
【问题描述】:
使用 O(1) 额外空间将方阵旋转 90 度。我已经使用 Python 来解决它。我想知道我是否可以进一步改进我的代码。
def rotate_by_90(m):
# unpacking arguments with zip(*) in reverse with [ : :-1]
tuples = zip(*m[::-1])
# flattening tuples to list with [list(i)]
return [list(i) for i in tuples]
def makeMatrix(array, size):
# validating size of matrix for given array
if (size**2!=len(array)):
return -1
# make sub array of length size using array slicing
else:
matrix = [array[i:i+size] for i in range(0, len(array), size)]
return rotate_by_90(matrix)
arr = [1,2,3,4]
dimension = 2
result = makeMatrix(arr, dimension)
# Original Matrix: [[1, 2], [3, 4]]
# Result: [[3, 1], [4, 2]]
【问题讨论】:
-
你能在你的问题中定义
improve吗?快点?现在有什么问题需要改进? -
是的,有没有可能让它变得更快?例如,如果维度增加到 10000。
标签: python arrays python-3.x matrix rotation