力扣 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;
            }
        }
    }
};
相关推荐
wefg13 分钟前
【算法】倍增思想(快速幂)
数据结构·c++·算法
Zik----11 分钟前
Leetcode24 —— 两两交换链表中的节点(迭代法)
数据结构·算法·链表
SmartBrain15 分钟前
通俗讲解:Agent Skill和智能体的技术概念
人工智能·算法
爱喝热水的呀哈喽19 分钟前
副产品技法
算法
!停26 分钟前
数据结构二叉树—链式结构(下)
数据结构·算法
逆境不可逃34 分钟前
LeetCode 热题 100 之 41.缺失的第一个正数
算法·leetcode·职场和发展
666HZ6661 小时前
数据结构5.0 树与二叉树
数据结构
码上发达1 小时前
状态压缩搜索解法(DFS + Dominance)
算法
颜酱1 小时前
差分数组:高效处理数组区间批量更新的核心技巧
javascript·后端·算法
yyy(十一月限定版)1 小时前
图论——最小生成树Kruskal算法
算法·图论