LeetCode <48. 旋转图像> <面试题 01.07. 旋转矩阵> python3实现

把这两个题放一起是因为它们本质是一道题。(这句话是废话)

先来看一下题干
链接:https://leetcode-cn.com/problems/rotate-image/在这里插入图片描述
面试题01.07. 题干:略

因为:
在这里插入图片描述
分析:第一反应,将图像顺时针旋转90°,好像也不是那么难:

(0,0)=> (0,n)
(0,1)=> (1,n)
(0,2)=> (2,n)
	···	···
(n,n-1)=> (n-1,n)
(n,n)=> (n,0)

emmm
还是算了吧……
头铁的童鞋可以看这里:https://blog.youkuaiyun.com/weixin_45761807/article/details/115560716

如果你有一点点线性代数的知识加上一点点敏锐的洞察力,你就会发现,将图像顺时针旋转90°,不就是相当于
先沿主对角线(左上-右下)翻转,再沿y轴翻转吗

答案出:

class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        n = len(matrix)
        m = n//2
        tmp = 0
        for i in range(0,n):
            for j in range(i, n):
                tmp = matrix[i][j]
                matrix[i][j] = matrix[j][i]
                matrix[j][i] = tmp

        for i in range(0, n):
            for j in range(0, m):
                tmp = matrix[i][j]
                matrix[i][j] = matrix[i][n-j-1]
                matrix[i][n-j-1] = tmp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值