# LeetCode – Rotate Image (Java)

You are given an n x n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).

Could you do this in-place?

In-place Solution

By using the relation "matrix[i][j] = matrix[n-1-j][i]", we can loop through the matrix.

```public void rotate(int[][] matrix) { int n = matrix.length; for (int i = 0; i < n / 2; i++) { for (int j = 0; j < Math.ceil(((double) n) / 2.); j++) { int temp = matrix[i][j]; matrix[i][j] = matrix[n-1-j][i]; matrix[n-1-j][i] = matrix[n-1-i][n-1-j]; matrix[n-1-i][n-1-j] = matrix[j][n-1-i]; matrix[j][n-1-i] = temp; } } }```
Category >> Algorithms
If you want someone to read your code, please put the code inside <pre><code> and </code></pre> tags. For example:
```<pre><code>
String foo = "bar";
</code></pre>
```
• hina jain

I think the j should be initialized to i instead of 0 in the second for loop.

• svGuy

transpose the matrix and swap rows

• svGuy

its easier to transpose the matrix first and then swap columns for clockwise rotation.

• Ivy G

You can replace “Math.ceil(((double) n) / 2.” with “(n+1)/2”

• Chen Chen

Great! Thanks for sharing.

• my boo

my bad, I got the axis messed up.

• my boo

• Guest

for i in range(n):
j=0
while(j<i):
temp=a[i][j]
a[i][j]=a[j][i]
a[j][i]=temp
j+=1

print a

• A Programmer

how would you do it counter clockwise?

• kinshuk chandra

I liked the inplace solution. I have also done the same thing here – http://k2code.blogspot.in/2014/03/rotate-n-n-matrix-by-90-degrees.html