Rotate Image Represented By A N*N Matrix (In -Place)


1 min read

Problem Statement:-

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.

Input: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Output: [[7,4,1],[8,5,2],[9,6,3]] mat1.jpg



class Solution {
    void rotate(vector<vector<int>>& ar) {
        int n=ar.size();
        reverse(ar.begin(),ar.end()); //Reversing the matrix from top to bottom
        for(int i=0;i<n;i++)
            for(int j=i+1;j<n;j++) //!NOTE   j=i+1
                swap(ar[i][j],ar[j][i]); //Swapping the elements along the symmetry

Space Complexity:- O(1)
Time Complexity:- O(N*N)