给定一个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"); } } }