leetcode hot100 48.旋转图像 矩阵转置

本质是矩阵转置90°

其实就是

  • 先沿「水平轴」翻转(上下翻转)
  • 再沿「左上 → 右下轴」翻转(主对角线翻转)

例如:

python 复制代码
[[1, 2],
 [3, 4]]     

先沿「水平轴」翻转(上下翻转)

python 复制代码
[[3, 4],
 [1, 2]] 

再沿「左上 → 右下轴」翻转(主对角线翻转)

python 复制代码
[[3, 1],
 [4, 2]]
python 复制代码
class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """

        n = len(matrix)

        # 上下对称,沿水平轴换位置
        for i in range(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]   # 与下半部分翻转
                
相关推荐
圣保罗的大教堂3 小时前
leetcode 3742. 网格中得分最大的路径 中等
leetcode
我不会起名字3224 小时前
一天一道算法题(35):电话号码的字母组合
java·数据结构·后端·python·leetcode·go·回溯
圣保罗的大教堂5 小时前
leetcode 2033. 获取单值网格的最小操作数 中等
leetcode
6Hzlia6 小时前
【Classic 150 刷题计划】 LeetCode 242. 有效的字母异位词 | C++ 哈希计数与严密防线
c++·算法·leetcode
wabs6666 小时前
关于二叉树【力扣101.对称二叉树的思考】
数据结构·c++·算法·leetcode·二叉树
6Hzlia6 小时前
【Classic 150 刷题计划】 LeetCode 228. 汇总区间 | C++ 双游标区间扫描与 to_string 规范
c++·算法·leetcode
玖玥拾7 小时前
LeetCode 383 赎金信
算法·leetcode
橘子汽水1688 小时前
Leetcode 763,45 划分字母区间 跳跃游戏II
数据结构·算法·leetcode
6Hzlia9 小时前
【Classic 150 刷题计划】 LeetCode 228. 汇总区间 | C++ 锚点游标与断点检测法
c++·算法·leetcode
Navigator_Z1 天前
LeetCode //C - 1250. Check If It Is a Good Array
c语言·算法·leetcode