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?
代码:由于要原地进行rotate,故而只能对原数组进行变化:对角线对称交换+左右交换
public class Solution {
public void rotate(int[][] matrix) {
for(int i = 0 ; i < matrix.length; i++)
{
for(int j = i; j < matrix[i].length; j++)
{
int tmp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = tmp;
}
}
for(int i = 0; i < matrix.length; i++)
{
int length = matrix[i].length;
for(int j = 0; j < length / 2; j++)
{
int tmp = matrix[i][j];
matrix[i][j] = matrix[i][length - 1 - j];
matrix[i][length - 1 - j] = tmp;
}
}
}
}