48.旋转图像

本文介绍了使用Python实现矩阵旋转的三种不同方法:第一种利用`reverse()`和`zip()`函数,第二种通过先上下颠倒再转置,第三种直接进行旋转操作。每种方法的时间复杂度和内存消耗都进行了展示,适用于处理二维数组的旋转问题。
摘要由CSDN通过智能技术生成

48.旋转图像

法一:reverse()函数,zip()函数

执行用时:44 ms, 在所有 Python3 提交中击败了33.42%的用户
内存消耗:14.7 MB, 在所有 Python3提交中击败了84.39%的用户

class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        matrix.reverse()
        matrix[::]=list(zip(*matrix))

法二:颠倒+转置

36 ms 14.7 MB Python3

        #上下颠倒
        n=len(matrix)
        for i in range(0,n//2):
            matrix[i],matrix[n-1-i]=matrix[n-1-i],matrix[i]
        #转置
        for i in range(n):
            for j in range(i+1,n):
                matrix[i][j],matrix[j][i]=matrix[j][i],matrix[i][j]

法三:旋转

执行用时: 36 ms , 在所有 Python3 提交中击败了83.19% 的用户
内存消耗:14.8 MB , 在所有 Python3 提交中击败了 69.62% 的用户

        #旋转
        n=len(matrix)
        for i in range(n//2):
            for j in range((n+1)//2):
                matrix[j][n-1-i],matrix[n-1-i][n-j-1],matrix[n-j-1][i],matrix[i][j]=matrix[i][j],matrix[j][n-1-i],matrix[n-1-i][n-j-1],matrix[n-j-1][i]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值