Tutorialspoint
Problem
Solution
Submissions

Rotate Image

Certification: Intermediate Level Accuracy: 0% Submissions: 0 Points: 10

Write a JavaScript program to rotate an n x n 2D matrix representing an 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]]
  • Explanation:
    • The original matrix is a 3x3 grid with values arranged row by row.
    • After rotating 90 degrees clockwise, the first row [1,2,3] becomes the last column.
    • The middle row [4,5,6] becomes the middle column.
    • The last row [7,8,9] becomes the first column.
    • The resulting matrix shows each element moved to its new rotated position.
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:
    • The original matrix is a 4x4 grid with 16 elements.
    • Each element moves according to the 90-degree clockwise rotation rule.
    • The top-left corner (5) moves to the top-right corner position.
    • Each ring of the matrix rotates independently.
    • The final matrix maintains the same dimensions but with rotated element positions.
Constraints
  • n == matrix.length == matrix[i].length
  • 1 <= n <= 20
  • -1000 <= matrix[i][j] <= 1000
  • You must rotate the matrix in-place
  • Time Complexity: O(n²)
  • Space Complexity: O(1)
Control StructuresMatrixCapgeminiZomato
Editorial

Login to view the detailed solution and explanation for this problem.

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.

Please Login to continue
Solve Problems

 
 
 
Output Window

Don't have an account? Register

Solution Hints

  • Transpose the matrix first (swap matrix[i][j] with matrix[j][i])
  • After transposing, reverse each row to complete the 90-degree rotation
  • Use nested loops to iterate through the matrix elements
  • For transposition, only iterate through the upper triangle to avoid double swapping
  • Use array reversal method or two-pointer technique to reverse rows

Steps to solve by this approach:

 Step 1: Transpose the matrix by swapping elements across the main diagonal (matrix[i][j] with matrix[j][i])

 Step 2: Iterate through only the upper triangle of the matrix to avoid double swapping during transposition
 Step 3: Use a temporary variable to perform the swap operation safely
 Step 4: After transposition, reverse each row of the matrix using the built-in reverse method
 Step 5: The combination of transpose and row reversal achieves a 90-degree clockwise rotation
 Step 6: Verify that the rotation is performed in-place without using additional space
 Step 7: Test with different matrix sizes to ensure the solution works for all valid inputs

Submitted Code :