给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
示例 1:

- 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
- 输出:[[7,4,1],[8,5,2],[9,6,3]]
示例 2:

- 输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
- 输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]
提示:
- n == matrix.length == matrix[i].length
- 1 <= n <= 20
- -1000 <= matrix[i][j] <= 1000
Method:
通过观察输入和输出结果可以发现,结果矩阵可以通过以下的简单变换得到:
第一步:上下翻转,由于直接交换数值,因此仅需反转数组长度的一半,即可反转全部矩阵。
第二步:沿主对角线反转得到结果矩阵。
Code:
- class Solution{
- public:
- // 旋转图像
- void rotate(vector
int>> &matrix){ - // 上下反转
- // 仅需反转一半即可
- for(int i=0;i
2;i++){ - for(int j=0;j
- // 交换
- swap(matrix[i][j],matrix[matrix.size()-1-i][j]);
- }
- }
-
- // 沿着主对角线反转
- for(int i=1;i
- // 仅需反转左下三角或右上三角即可
- for(int j=i+1;j
- // 交换
- swap(matrix[i][j],matrix[j][i]);
- }
- }
- }
- };
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/rotate-image
Reference:
-
相关阅读:
Windows提权
QFusion数据库管理平台数据库集群创建及管理
npm的配置文件及其路径问题
vector的介绍以及使用方式
【LeetCode】12. 整数转罗马数字
如何通过VNC实现公网远程控制macOS设备
H5实现预览pdf(PC+移动端都可以)
JavaWeb简单实例——jQuery
GB28181设备接入端如何实现校时?
实验过程中的问题记录
-
原文地址:https://blog.csdn.net/qq_40728667/article/details/126923952
-
最新文章
-
沪漂五周年了:我越来越迷茫了
Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
MySQL-Seconds_behind_master的精度误差
[MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
Agent OS :五种驯服不确定性的范式
PortSwigger SQL注入LAB11
数据库即时编译JIT
[Begin]AI Learn Data Day 0
深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU