Rotate Image
The key idea
A 90-degree clockwise rotation equals a transpose (reflect across the main diagonal) followed by reversing each row. The transpose sends
matrix[i][j] to matrix[j][i]; reversing each row then flips the columns left-to-right. Both passes touch only existing cells, so the rotation happens in place with no extra matrix.Problem
You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees clockwise.
You have to rotate the image in-place, which means you have to modify the input 2D matrix directly. Do not allocate another 2D matrix and do the rotation.
Constraints
n == matrix.length == matrix[i].length1 <= n <= 20-1000 <= matrix[i][j] <= 1000
Examples
Input: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Output: [[7,4,1],[8,5,2],[9,6,3]]
Input: matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
Output: [[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]
Complexity
Time: O(n^2) Space: O(1)
See the full solution
- ✓Full worked approach
- ✓Reference code in 5 languages
- ✓Problem-solving tips
- ✓Step-by-step animated visualization
More Matrix / Grid problems
- Game of LifeMEDIUM
- Island PerimeterEASY
- Search a 2D Matrix IIMEDIUM
- Set Matrix ZeroesMEDIUM
- Spiral MatrixMEDIUM
- Spiral Matrix IIMEDIUM
- Transpose MatrixEASY