LeetCode 48.旋转图像

1.题目

https://leetcode-cn.com/problems/rotate-image/

2.题解

这道题解法有好几种。第一种解法就是一圈一圈的旋转,从外到内。第二种解法,就是我用的这种,是先按照中心点进行一次旋转,再按照中间位置的水平线进行一次翻转,就可以到达效果。

3.代码

class Solution {
    public void rotate(int[][] matrix) {
        if (matrix == null){return;}
        int n = matrix.length;
        // 沿着中心点进行一次对角的旋转
        for (int i = 0; i < n; i++){
            for (int j = 0; j < n - i; j++) {
                int rep = matrix[i][j];
                matrix[i][j] = matrix[n - 1 - j][n - 1 - i];
                matrix[n - 1 - j][n - 1 - i] = rep;
               }
           }
        // 沿着中间水平线上下旋转
        for (int i = 0; i < n / 2; i++){
            for (int j = 0; j < n; j++) {
                int rep = matrix[i][j];
                matrix[i][j] = matrix[n - 1 - i][j];
                matrix[n - 1 - i][j] = rep;
            }
        }
    }
}

4.结果截图

image.png

你可能感兴趣的:(LeetCode 48.旋转图像)