Tutorialspoint
Problem
Solution
Submissions

Rotate Image

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

Write a C# program to rotate an n x n 2D matrix (array) by 90 degrees (clockwise). You need to do this 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:
    • Before rotation:
      1 2 3
      4 5 6
      7 8 9
    • After 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:
    • Before rotation:
      5 1 9 11
      2 4 8 10
      13 3 6 7
      15 14 12 16
    • After rotation:
      15 13 2 5
      14 3 4 1
      12 6 8 9
      16 7 10 11
Constraints
  • n == matrix.length == matrix[i].length
  • 1 <= n <= 20
  • -1000 <= matrix[i][j] <= 1000
  • Time Complexity: O(n²) where n is the matrix dimension
  • Space Complexity: O(1) for in-place rotation
ArraysGoogleTutorialspoint
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

  • Rotate the matrix in layers, starting from the outermost layer
  • The rotation can be done in two steps: transpose and then reflect
  • Transpose: swap matrix[i][j] with matrix[j][i]
  • Reflect: reverse each row of the matrix
  • Alternatively, rotate four cells at a time in a single pass

Steps to solve by this approach:

 Step 1: Determine the size of the matrix (n x n).
 Step 2: Transpose the matrix by swapping elements across the main diagonal (i.e., swap matrix[i][j] with matrix[j][i]).
 Step 3: To transpose, iterate through the upper triangular portion of the matrix (where i ≤ j).
 Step 4: After transposing, reverse each row of the matrix.
 Step 5: To reverse each row, swap elements from the beginning and end of each row, moving towards the center.
 Step 6: The result is the original matrix rotated 90 degrees clockwise.

Submitted Code :