package
com.ytx.array;
/** 题目:rotate-image
*
* 描述: 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?
*
*
@author
yuantian xin
*
* 求将一个n*n的二维矩阵顺时针旋转90度得到的新矩阵
*
* 我是直接找规律,以3*3矩阵为例
* matrix[0][0] = matrix[2][0], matrix[0][1] = matrix[1][0], matrix[0][2] = matrix[0][0];
*
* matrix[1][0] = matrix[2][1], matrix[1][1] = matrix[1][1], matrix[1][2] = matrix[0][1];
*
* matrix[2][0] = matrix[2][2], matrix[2][1] = matrix[1][2], matrix[2][2] = matrix[0][2];
*
* 得到规律 matrix[i][j] = matrix[len
-
1 -
j][i]
*
*/
public
class
Rotate_image {
public
void
rotate(int[][]
matrix) {
int
len =
matrix.length;
int[][]
temp
= new
int[len][len];
for(int
i
= 0; i
< len;
i++) {
for(int
j
= 0; j
< len;
j++) {
temp[i][j]
= matrix[i][j];
}
}
for(int
i
= 0; i
< len;
i++) {
for(int
j
= 0; j
< len;
j++) {
matrix[i][j]
= temp[len
- 1 -
j][i];
}
}
}
public
static
void main(String[]
args) {
int[][]
matrix= {{2,3,3},{1,1,1},{3,3,3}};
new
Rotate_image().rotate(matrix);
for(int
i
= 0; i
< matrix.length;
i++) {
for(int
j
= 0; j
< matrix.length;
j++) {
System.out.print(matrix[i][j]
+ " ");
}
System.out.println();
}
}
}