题目:Rotate Image
难度:medium
问题描述:
You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
解题思路:
变换规律:原矩阵的第x行变为了第(n-x)列,第y列变成了第y行。
实现没有考虑节约空间,具体代码如下:
public static void rotate(int[][] matrix) {
show(matrix);
int len=matrix.length;
int[][] res=new int[len][len];
for(int i=0;i<len;i++){
for(int j=0;j<len;j++){
res[j][len-1-i]=matrix[i][j];
}
}
matrix=res.clone();
System.out.println("-----------------");
show(matrix);
}
public static void show(int[][] a){
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length;j++){
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
public static void main(String[]args){
int[][] a=new int[2][2];
int k=1;
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
a[i][j]=k++;
}
}
rotate(a);
}