【Leecode】Leecode刷题之路第48天之旋转图像

Scroll Down

题目出处

48-旋转图像

题目描述

48-旋转图像-题目描述

个人解法

思路:

todo

代码示例:(Java)

todo

复杂度分析

todo

官方解法

48-旋转图像-官方题解

方法1:使用辅助数组

思路:

48-旋转图像-使用辅助数组-思路

代码示例:(Java)

public class Solution1 {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        int[][] matrix_new = new int[n][n];
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < n; ++j) {
                matrix_new[j][n - i - 1] = matrix[i][j];
            }
        }
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < n; ++j) {
                matrix[i][j] = matrix_new[i][j];
            }
        }
    }


}

复杂度分析

48-旋转图像-使用辅助数组-复杂度分析

方法2:原地旋转

思路:

48-旋转图像-原地旋转-思路1
48-旋转图像-原地旋转-思路2
48-旋转图像-原地旋转-思路3

代码示例:(Java)

public class Solution2 {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        for (int i = 0; i < n / 2; ++i) {
            for (int j = 0; j < (n + 1) / 2; ++j) {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[n - j - 1][i];
                matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1];
                matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1];
                matrix[j][n - i - 1] = temp;
            }
        }
    }


}

复杂度分析

48-旋转图像-原地旋转-复杂度分析

方法3:用翻转代替旋转

思路:

48-旋转图像-用翻转替代旋转-思路

代码示例:(Java)

public class Solution3 {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        // 水平翻转
        for (int i = 0; i < n / 2; ++i) {
            for (int j = 0; j < n; ++j) {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[n - i - 1][j];
                matrix[n - i - 1][j] = temp;
            }
        }
        // 主对角线翻转
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < i; ++j) {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }
    }


}

复杂度分析

48-旋转图像-用翻转替代旋转-复杂度分析

考察知识点

1.矩阵

2.如何输出二维数组:Arrays.deepToString(xxx);

3.数组初始化

收获

1.html的pre、sub、sup标签

Gitee源码位置

48-旋转图像-源码

同名文章,已同步发表于CSDN,个人网站,公众号