LeetCode T48.旋转图像

思路一:

将矩阵竖着解构,如 [[1,2,3],[4,5,6],[7,8,9]] 解构成 [[1,4,7],[2,5,8],[3,6,9]],将每个部分逆序即可。

代码如下:

from typing import List
 
 
class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        matrix[:] = [row[::-1] for row in zip(*matrix)]

思路二:

先将矩阵沿主对角线翻转,如 [[1,2,3],[4,5,6],[7,8,9]] 翻转成 [[1,4,7],[2,5,8],[3,6,9]],再左右翻转,如 [[1,4,7],[2,5,8],[3,6,9]] 翻转成 [[7,4,1],[8,5,2],[9,6,3]]。

代码如下:

from typing import List
 
 
class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        length = len(matrix)
        '''主对角线翻转'''
        for i in range(length):
            for j in range(i, length):
                matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
        '''左右翻转'''
        for i in range(length):
            for j in range(length // 2):
                matrix[i][j], matrix[i][length - j - 1] = matrix[i][length - j - 1], matrix[i][j]
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值