给你一幅由 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; } }