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();
}
}
}