Given a square matrix of size N x N. The task is to rotate it by 90 degrees in anti-clockwise direction without using any extra space.

Example 1:

```Input:
N = 3
matrix[][] = {{1, 2, 3},
{4, 5, 6}
{7, 8, 9}}
Output:
Rotated Matrix:
3 6 9
2 5 8
1 4 7
```

Example 2:

```Input:
N = 2
matrix[][] = {{1, 2},
{3, 4}}
Output:
Rotated Matrix:
2 4
1 3
```

method 1:

c++ implementation:

```void rotateby90(int n, int m[][n])
{
int a[n][n];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
a[i][j]=m[i][j];
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
m[n-1-j][i]=a[i][j];
}
}

} ```
Time Complexity: O(n*n)

space Complexity: O(n*n)

method 2:
```first transpose the matrix
than reverse the rows of the matrix```
```  void rotateby90(int n, int m[][n])
{
for (int i = 0; i < n; i++)
for (int j = i; j < n; j++)
swap(m[i][j], m[j][i]);               //transpose the matrix

for (int i = 0; i < n/2; i++)
for (int j = 0; j < n; j++)
swap(m[i][j],m[n-i-1][j]);                 //reverse the rows

}```
Time Complexity: O(n*n)

space Complexity: O(1)
darkmode