力扣 48. 旋转图像

🔗 https://leetcode.cn/problems/rotate-image

题目

  • 给一个 n * n 的数组,返回顺时针旋转后的矩阵,要求 in-place,不能使用额外矩阵

思路

  • 明确几个要交换的元素坐标,(i, j) → (j, n - i -1) → (n - i - 1, n - j - 1) → (n - j -1, i) → (i, j) 完成替换即可
  • 明确要遍历的轮次,i 遍历到 n/2 即可,j 遍历 i → n - i - 1

代码

cpp 复制代码
class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int n = matrix.size();
        for (int i = 0; i < n/2; i++) {
            for (int j = i; j < n - i - 1; j++) {
                int tmp = matrix[i][j];
                //printf("--------- %d %d %d\n", i, j, matrix[i][j]);
                matrix[i][j] = matrix[n - j - 1][i];
                matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1];
                matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1];
                matrix[j][n - i - 1] = tmp;
            }
        }
    }
};
相关推荐
rgeshfgreh1 分钟前
顺序表实战:构建到销毁全解析
算法
十八岁讨厌编程3 分钟前
【算法训练营Day32】图论专题
算法·深度优先·图论
小欣加油9 分钟前
leetcode 174 地下城游戏
c++·算法·leetcode·职场和发展·动态规划
sali-tec20 分钟前
C# 基于OpenCv的视觉工作流-章11-高斯滤波
图像处理·人工智能·opencv·算法·计算机视觉
良木生香24 分钟前
【C语言进阶】文件操作的相关详解(1):
c语言·数据结构·c++
Ka1Yan31 分钟前
[链表] - 代码随想录 203. 移除链表元素
数据结构·链表
不知名XL33 分钟前
day23 贪心算法 part01
算法·贪心算法
坚持就完事了1 小时前
滑动窗口算法
数据结构
wuqingshun3141591 小时前
蓝桥杯 缺页异常2【算法赛】
算法·职场和发展·蓝桥杯
Mh_ithrha1 小时前
题目:小鱼比可爱(java)
java·开发语言·算法