# LC048 - Rotate Image

## Problem

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**](https://en.wikipedia.org/wiki/In-place_algorithm), which means you have to modify the input 2D matrix directly. **DO NOT** allocate another 2D matrix and do the rotation.

### Example

**Input:** matrix = `[[1,2,3],[4,5,6],[7,8,9]]`

**Output:** `[[7,4,1],[8,5,2],[9,6,3]]`

## Solution

Time complexity is $$O(n\cdot n)$$ and no extra space is used.

```python
def rotate(self, matrix: List[List[int]]) -> None:
	for i in range(len(matrix)+1):
		for j in range(i, len(matrix[0])):
			matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]

	for row in range(len(matrix)):
		matrix[row] = matrix[row][::-1]
				
```
