
Problem
Solution
Submissions
Rotate Image
Certification: Intermediate Level
Accuracy: 0%
Submissions: 0
Points: 10
Write a C program to rotate an n x n 2D matrix representing an image by 90 degrees clockwise in-place. 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]]
- Explanation: Original matrix: 1 2 3 / 4 5 6 / 7 8 9. After 90° clockwise rotation: 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]]
- Explanation: Original 4x4 matrix with elements arranged in rows. After rotation, first column becomes first row in reverse order. The transformation follows the pattern: matrix[i][j] -> matrix[j][n-1-i].
Constraints
- 1 ≤ n ≤ 20
- -1000 ≤ matrix[i][j] ≤ 1000
- The matrix is a square matrix (n x n)
- Time Complexity: O(n^2)
- Space Complexity: O(1)
Editorial
My Submissions
All Solutions
Lang | Status | Date | Code |
---|---|---|---|
You do not have any submissions for this problem. |
User | Lang | Status | Date | Code |
---|---|---|---|---|
No submissions found. |
Solution Hints
- First transpose the matrix (swap elements across main diagonal)
- Then reverse each row to get 90-degree clockwise rotation
- Alternative approach: rotate elements in concentric squares
- For transpose: swap matrix[i][j] with matrix[j][i]
- For row reversal: swap matrix[i][j] with matrix[i][n-1-j]
- Process only upper triangle during transpose to avoid double swapping