leetcode 48. 旋转图像

题目如下

复制代码
观察交换规律我们可以看到,第一行第一个转移到的的最后一列的第一个。

即f(r,c) 转移到f(c,n - r - 1)
我们可以把r c赋值成(c,n - r - 1)可以发现一个位置走一圈总共有四个式子。
我们可以把第一个位置用t暂存随后逆推公式把后面的轮换上来。
cpp 复制代码
  temp = 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] = temp;

通过代码

cpp 复制代码
class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int n = matrix.size();
        int temp;
        for (int i = 0; i < n / 2; ++i) {
            for (int j = 0; j < (n + 1) / 2; ++j) {
                temp = 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] = temp;
            }
        }
    }
};
相关推荐
weixin_307779134 分钟前
利用特征值和特征函数求解积分方程
算法
TT哇5 分钟前
【BFS 解决FloodFill 算法】4. 被围绕的区域(medium)
算法·宽度优先
渡我白衣7 分钟前
C++世界的混沌边界:undefined_behavior
java·开发语言·c++·人工智能·深度学习·语言模型
格林威20 分钟前
AOI在人形机器人制造领域的应用
人工智能·数码相机·算法·目标跟踪·机器人·视觉检测·制造
却道天凉_好个秋27 分钟前
c++ 协程
c++
QQ12958455042 小时前
ThingsBoard部件数据结构解析
数据结构·数据库·物联网·iot
chian-ocean2 小时前
双向链表的“链”与“殇”——Rust LinkedList 的深度剖析、实战与再思考
数据结构·链表·rust
小圆5312 小时前
java-learn(9):常见算法,collection框架
java·开发语言·算法
无敌最俊朗@2 小时前
视频时间基 (time_base) 详解:时间的“刻度单位”
c++