48. Rotate Image
MediumLeetCodeYou 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.
Example 1
Input: matrix =
[[1,2,3],[4,5,6],[7,8,9]]Output:
[[7,4,1],[8,5,2],[9,6,3]]
Example 2
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]]
Constraints
n == matrix.length == matrix[i].length1 <= n <= 20-1000 <= matrix[i][j] <= 1000
How to solve the problem
- Matrix Transpose + Row Reversal
Code
python
class Solution:
def rotate(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
Rotates the given n x n matrix 90 degrees clockwise.
"""
n = len(matrix)
# Step 1: Transpose the matrix (swap matrix[i][j] with matrix[j][i])
for i in range(n):
for j in range(i + 1, n):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
# Step 2: Reverse each row to complete the 90-degree rotation
for row in matrix:
row.reverse()Complexity
Approach: Matrix Transpose + Row Reversal
Time complexity: O(n²)
- We need to traverse the entire matrix, which has n² elements
Space complexity: O(1)
- We only use a constant amount of extra space, modifying the matrix in-place

Comments
No comments yet. Be the first to comment!