 GeeksforGeeks App
Open App Browser
Continue

# Javascript Program for Rotate a Matrix by 180 degree

Given a square matrix, the task is that we turn it by 180 degrees in an anti-clockwise direction without using any extra space.

Examples :

```Input :  1  2  3
4  5  6
7  8  9
Output : 9 8 7
6 5 4
3 2 1

Input :  1 2 3 4
5 6 7 8
9 0 1 2
3 4 5 6
Output : 6 5 4 3
2 1 0 9
8 7 6 5
4 3 2 1```

Method: 1 (Only prints rotated matrix)
The solution of this problem is that to rotate a matrix by 180 degrees we can easily follow that step

```Matrix =  a00 a01 a02
a10 a11 a12
a20 a21 a22

when we rotate it by 90 degree
then matrix is
Matrix = a02 a12 a22
a01 a11 a21
a00 a10 a20

when we rotate it by again 90
degree then matrix is
Matrix = a22 a21 a20
a12 a11 a10
a02 a01 a00 ```

From the above illustration, we get that simply to rotate the matrix by 180 degrees then we will have to print the given matrix in a reverse manner.

## Javascript

 ``

Output :

``` 9 8 7
6 5 4
3 2 1  ```

Time complexity: O(N*N)
Auxiliary Space: O(1)

Method : 2(In-place rotation)
There are four steps :
1- Find transpose of a matrix.
2- Reverse columns of the transpose.
3- Find transpose of a matrix.
4- Reverse columns of the transpose

```Let the given matrix be
1  2  3  4
5  6  7  8
9  10 11 12
13 14 15 16

First we find transpose.
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16

Then we reverse elements of every column.
4 8 12 16
3 7 11 15
2 6 10 14
1 5  9 13

then transpose again
4 3 2 1
8 7 6 5
12 11 10 9
16 15 14 13

Then we reverse elements of every column again
16 15 14 13
12 11 10 9
8 7 6 5
4 3 2 1```

## Javascript

 ``

Output :

``` 16 15 14 13
12 11 10 9
8 7 6 5
4 3 2 1```

Time complexity : O(R*C)
Auxiliary Space : O(1)
In the code above, the transpose of the matrix has to be found twice, and also, columns have to be reversed twice.
So, we can have a better solution.

Method : 3 (Position swapping)
Here, we swap the values in the respective positions.

## Javascript

 ``

Output :

```25 24 23 22 21
20 19 18 17 16
15 14 13 12 11
10 9 8 7 6
5 4 3 2 1 ```

Time complexity : O(R*C)
Auxiliary Space : O(1)

Please refer complete article on Rotate a Matrix by 180 degree for more details!

My Personal Notes arrow_drop_up