题目描述
You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
public class Solution {
public void rotate(int[][] matrix) {
if(matrix == null && matrix.length == 0 && matrix[0].length == 0)
return ;
int top = 0;
int bottom = matrix.length - 1;
int left = 0;
int right = matrix.length - 1;
int n = matrix.length;
while(n > 1)
{
for(int i = 0 ; i < n -1 ; i++)
{
int temp = matrix[top][left+i];
matrix[top][left+i] = matrix[bottom-i][left];
matrix[bottom-i][left] = matrix[bottom][right-i];
matrix[bottom][right-i] = matrix[top+i][right];
matrix[top+i][right] = temp;
}
top++;
bottom--;
left++;
right--;
n-=2;
}
}
}
confusing!
links:
ways