大家好,今天我们来探讨一道非常有趣的题目——LeetCode第48题:旋转图像(Rotate Image)。这道题目不仅能让你在编程中体会到二维数组操作的乐趣,还能让你通过一步步的旋转,感受到数学与编程结合的美妙。准备好了吗?让我们一起旋转起来吧!
题目描述
你被给予一个 n x n
的二维矩阵 matrix
表示一个图像,将图像顺时针旋转 90 度。
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。不要使用另一个二维矩阵来完成旋转。
举个栗子:
输入: matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出: [[7,4,1],[8,5,2],[9,6,3]]
输入: 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]]
解题思路
这道题的核心在于如何在原地对矩阵进行顺时针旋转。一个简单的观察是,我们可以通过两次反转来实现一次顺时针旋转:
- 水平翻转:将矩阵的每一行