题目:
给定一个n*n的数组,将其顺时针旋转90度,要求直接对原数组进行处理,不要使用多余的空间或者新建数组旋转。输入输出样例:
Given input matrix = [ [1,2,3], [4,5,6], [7,8,9] ], rotate the input matrix in-place such that it becomes: [ [7,4,1], [8,5,2], [9,6,3] ]解题思路:
考虑输入输出的差别,先将数组按照正对角线对称,再对每一行的向量进行反转,即可得到旋转90度的结果。
代码(Python):
class Solution(object):
def rotate(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: void Do not return anything, modify matrix in-place instead.
"""
for i in range(len(matrix)):
for j in range(len(matrix[0])-i):
temp = matrix[i][j+i]
matrix[i][j+i] = matrix[j+i][i]
matrix[j+i][i] = temp
for i in range(len(matrix)):
matrix[i].reverse()