每日两道算法题 - 矩阵旋转

2021-12-15  本文已影响0人  辉_ace

问题

给定一个 n × n 的二维矩阵,按顺时针旋转 90 度在原矩阵上进行旋转。

思路

依次对矩阵最外层进行90度偏移
原矩阵:


image.png

旋转后矩阵:


image.png

实现

public class Rotate {

    public static void main(String[] args) {

        int[][] nums = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
        rotate(nums);

    }

    private static void rotate(int[][] matrix) {
        int length = matrix.length;
        for (int i = 0; i < length / 2; i++) {
            for (int j = i; j < length - i - 1; j++) {
                int temp = matrix[i][j];
                int m = length - j - 1;
                int n = length - i - 1;
                matrix[i][j] = matrix[m][i];
                matrix[m][i] = matrix[n][m];
                matrix[n][m] = matrix[j][n];
                matrix[j][n] = temp;
            }
        }
    }
}
image.png
上一篇 下一篇

猜你喜欢

热点阅读