leetcode 48 旋转图像

leetcode 48 旋转图像_第1张图片

原地旋转

leetcode 48 旋转图像_第2张图片

用翻转代替旋转

leetcode 48 旋转图像_第3张图片

class Solution {
    public void rotate(int[][] matrix) {
        //先上下反转,然后对角线翻转
        int n=matrix.length;
        for(int i=0;i<n/2;i++){//前2/n行
            for(int j=0;j<n;j++){ //每行所有的数
                int temp=matrix[i][j];
                matrix[i][j]=matrix[n-1-i][j];//列不变 行变化
                matrix[n-1-i][j]=temp;
            }
        }
        //对角线翻转
        for(int i=0;i<n;i++){
            for(int j=0;j<i;j++){//为什么小于i 只翻转左下的三角
                int temp=matrix[i][j];
                matrix[i][j]=matrix[j][i];
                matrix[j][i]=temp;
            }
        }

    }
}

你可能感兴趣的:(leetcode,算法)