给定一个 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:
-
相关阅读:
Apache Atlas 50道面试题及参考答案
正式发布!万应低代码入选中国信通院《2023高质量数字化转型技术解决方案集》
编写Android可执行二进制文件调用so
优思学院|六西格玛绿带和黑带的年薪收入有多少?
Mygin中间件优化及logger日志中间件
深度学习入门:自建数据集完成花鸟二分类任务
Win11的两个实用技巧系列之电脑死机解决办法
文本的设置
Python实现连连看12
dubbo使用带有密码的redis注册中心完整配置及遇到问题解决、RestTemplate配置【持续更新】
-
原文地址:https://blog.csdn.net/qq_40728667/article/details/126923952