给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。
样例
给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]]
原理就是:
先上下翻, 以X轴对称
再调换坐标
public class Solution {
/**
* @param matrix: a lists of integers
* @return: nothing
*/
public void rotate(int[][] matrix) {
// write your code here
int l = matrix.length;
for (int i = 0; i < l / 2; i++) {
for (int j = i; j < l - 1 - i; j++) {
int tmp = matrix[i][j];
matrix[i][j] = matrix[l - 1 - j][i];
matrix[l - 1 - j][i] = matrix[l - 1 - i][l - 1 - j];
matrix[l - 1 - i][l - 1 - j] = matrix[j][l - 1 - i];
matrix[j][l - 1 - i] = tmp;
}
}
for (int[] _n : matrix) {
System.out.print("[");
for (int x : _n) {
System.out.print(x + ",");
}
System.out.print("]\n");
}
}
}