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?
用一个n*n的矩阵代表一个图片,将图片顺时针旋转90度。题目的意思很明显,相当于,如果一个矩阵是
1 2 3
4 5 6
7 8 9
需要将它转换为:
7 4 1
8 5 2
9 6 3
可以为了正确的转换,可以先将原矩阵转置,然后再将每行的元素进行交换,比如第一行第一个与第一行最后一个元素交换,第一行第二个与第一行倒数第二个元素交换......
for(int i=0;i<matrix.length;i++){
for(int j=i;j<matrix.length;j++){
int temp;
temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
for(int i=0;i<matrix.length;i++){
for(int j=0;j<matrix.length/2;j++){
int temp;
temp = matrix[i][j];
matrix[i][j] = matrix[i][matrix.length-1-j];
matrix[i][matrix.length-1-j] = temp;
}
}