给定一个 n × n 的二维矩阵表示一个图像。
将图像顺时针旋转 90 度。
说明:
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
def rotate(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: void Do not return anything, modify matrix in-place instead.
"""
n = len(matrix)
for i in range(n):
for j in range(i+1,n):
matrix[i][j],matrix[j][i] = matrix[j][i],matrix[i][j]
for k in range(n):
matrix[k].reverse()
#for j in range(n/2):
# matrix[k][j],matrix[k][n-1-j] = matrix[k][n-1-j],matrix[k][j]
解2:
1.首先Python中的map函数是很简单的。意为将第二个参数(一般是数组)中的每一个项,处理为第一个参数的类型 )
2.zip函数:意思是取各个list的第x项,作为返回的二维数组的第x项中的一维数组中的元素
要注意写成zip(*),表示这是一个zip的逆操作
def rotate(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: void Do not return anything, modify matrix in-place instead.
"""
matrix[:] = map(list,zip(*matrix[::-1]))