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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值