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;
            }
        }
    }
};
相关推荐
Stanford_11062 小时前
如何利用Python进行数据分析与可视化的具体操作指南
开发语言·c++·python·微信小程序·微信公众平台·twitter·微信开放平台
小许学java2 小时前
数据结构-ArrayList与顺序表
java·数据结构·顺序表·arraylist·线性表
千里马-horse3 小时前
Async++ 源码分析8--partitioner.h
开发语言·c++·async++·partitioner
格林威4 小时前
常规线扫描镜头有哪些类型?能做什么?
人工智能·深度学习·数码相机·算法·计算机视觉·视觉检测·工业镜头
Lucis__4 小时前
再探类&对象——C++入门进阶
开发语言·c++
北京不会遇到西雅图5 小时前
【SLAM】【后端优化】不同优化方法对比
c++·机器人
jndingxin5 小时前
c++多线程(6)------ 条件变量
开发语言·c++
程序员莫小特6 小时前
老题新解|大整数加法
数据结构·c++·算法
小刘max7 小时前
深入理解队列(Queue):从原理到实践的完整指南
数据结构
过往入尘土7 小时前
服务端与客户端的简单链接
人工智能·python·算法·pycharm·大模型