给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。

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


    }
}

 

 

Leave a Comment