面试题 01.07. 旋转矩阵

    科技2024-11-04  15

    面试题 01.07. 旋转矩阵

    题目

    给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。

    不占用额外内存空间能否做到?

    解法

    先将矩阵上下对换,然后按照左上到右下的对角线为轴进行对换。

    class Solution { public void rotate(int[][] matrix) { int N = matrix.length; if(N == 0) return; //上下互换 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; } } return; } }
    Processed: 0.031, SQL: 8