You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
题意:
给你一个 n x n 2D矩阵代表一个图片,顺时针旋转90度
思考:
可以原地实现此操作么
思路:
原矩阵的 i,j 会变到 j,(n-1)-i 这个位置上
如果直接去换,此处有坑:遍历下一个的时候,可能已经变成最新的元素了,则又把它变走了
先转置上三角,再每一行翻转
参考:
http://www.cnblogs.com/zuoyuan/p/3772978.html
Python:
class Solution(object):
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):<span style="white-space:pre"> </span>#先转置上三角
for j in range(i+1,n):
t=matrix[j][i]
matrix[j][i]=matrix[i][j]
matrix[i][j]=t
for i in range(n):<span style="white-space:pre"> </span>#再每一行翻转
matrix[i].reverse()