Leetcode 旋转图像

解题思路:

  1. 转置矩阵:通过将矩阵的行列互换来实现转置操作。
  2. 水平翻转矩阵:通过将每行的数据进行对称交换,从而完成90度旋转。

通过这两个步骤,矩阵就会顺时针旋转90度。

cpp 复制代码
class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int n = matrix.size();

        //先转置矩阵
        for(int i = 0; i < n; ++i) {
            //j 的初始值是从 i 开始,而不是从 0 开始,这是为了避免重复交换已经处理过的元素。
            // j从i 开始只会对矩阵的上三角区域进行转置操作,避免了不必要的重复交换
            for(int j = i; j < n; ++j) { 
                swap(matrix[i][j], matrix[j][i]);
            }
        }
        //然后水平翻转每一行
        for(int i = 0; i < n; ++i) {
            for(int j = 0; j < n / 2; ++j) {
                swap(matrix[i][j], matrix[i][n - 1 - j]); // n - 1是因为下标从 0 开始, 下标 n 取不到 
            }
        }
    }
};
相关推荐
什巳几秒前
JAVA练习277- 找到字符串中所有字母异位
java·开发语言·算法·leetcode
机器学习之心1 分钟前
基于遗传粒子群混合算法的无人机三维路径规划:Matlab 实现与多算法对比分析
算法·matlab·无人机·无人机三维路径规划·遗传粒子群混合算法
本王是暴君14 分钟前
AutoMem:把 Agent Memory 变成可训练的记忆管理技能
人工智能·算法·数据挖掘
zmzb010318 分钟前
C++课后习题训练记录Day154
数据结构·c++·算法
木木子226 小时前
# 密码强度检测深度解析:正则表达式实时分析、多维度评分算法与可视化反馈
mysql·算法·华为·正则表达式·harmonyos
Sw1zzle8 小时前
算法入门(四):二叉树 - 递归遍历三件套
算法·leetcode
万法若空9 小时前
【算法-查找】查找算法
java·数据结构·算法
海石9 小时前
子树怎么找?树的3种遍历方式来帮忙!
算法·leetcode
海石9 小时前
难度分 1588:思路 + 技巧 = AC
算法·leetcode
珠海西格电力13 小时前
云边端协同架构:零碳园区管理系统的技术底座
大数据·运维·人工智能·算法·架构·能源