leetcode-初级算法-数组-旋转图像

题目:

给定一个 n × n 的二维矩阵表示一个图像。

将图像顺时针旋转 90 度。

说明:

你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。

解决方法:

 //旋转二维数组可通过两个步骤完成:
    // 一、沿对角线对称翻转
    // 二、沿中心线左右对称翻转

    public void rotate(int[][] matrix) {
        for(int i=0;i<matrix.length;i++) {
            for(int j=0;j<matrix[i].length;j++) {
                if(j>i) {
                    int temp1=matrix[j][i];
                    matrix[j][i]=matrix[i][j];
                    matrix[i][j]=temp1;
                }
            }   
        }
        if(matrix.length%2==1) {
            for(int i=0;i<matrix.length;i++) {
                for(int j=0;j<(matrix.length+1)/2-1;j++) {
                    int temp2=matrix[i][j];
                    matrix[i][j]=matrix[i][matrix.length-1-j];
                    matrix[i][matrix.length-1-j]=temp2;
                }
            }
        }else{
            for(int i=0;i<matrix.length;i++) {
                for(int j=0;j<=matrix.length/2-1;j++) {
                    int temp3=matrix[i][j];
                    matrix[i][j]=matrix[i][matrix.length-1-j];
                    matrix[i][matrix.length-1-j]=temp3;
                }
            }
        }
    }

你可能感兴趣的:(leetcode)