【LEETCODE】48-Rotate Image [Python]

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()



你可能感兴趣的:(LeetCode,python)