力扣 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;
            }
        }
    }
};
相关推荐
脏脏a20 小时前
栈 & 队列:面试题(括号 / 循环队列)+ 概念题,全考点覆盖
数据结构·栈和队列面试题
程序员-King.21 小时前
day115—同向双指针—将x减到0的最小操作数(LeetCode-1658)
算法·leetcode·双指针
全栈工程师修炼指南21 小时前
Nginx | 负载均衡策略:一致性哈希算法实践
运维·算法·nginx·负载均衡·哈希算法
Jerryhut21 小时前
sklearn函数总结六——特征降维 压缩数据 - 特征提取(PCA&LDA)
人工智能·算法·机器学习·scikit-learn·sklearn
apcipot_rain21 小时前
CCF算法能力大赛T3 暴力法 反思
算法
前端小白在前进21 小时前
力扣刷题:有效的括号
算法·leetcode·职场和发展
EXtreme3521 小时前
算法深潜:链表中的生死之环(LeetCode 141 & 142 详解)
数据结构·算法·leetcode·链表·快慢指针·数学证明·带环链表
seven97_top21 小时前
数据结构——树
java·数据结构
2301_8035545221 小时前
Pimpl(Pointer to Implementation)设计模式详解
c++·算法·设计模式
leoufung21 小时前
LeetCode 211:设计添加与搜索单词的数据结构(Trie + DFS)
数据结构·leetcode·深度优先