AAlgoLoopSpaced repetition for LeetCode
MEDIUMMatrix / GridLeetCode ↗

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

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

410310
Step-by-step visualization
Start free →

More Matrix / Grid problems