给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。
矩阵旋转90度 由两个步骤组成:
1 矩阵转置
由“线性代数”知识可知:矩阵转置公式: matrix[i][j] = matrix[j][i]
2 交换列元素
假设一共有 len 列,第 column 列与第 len-column-1 列作交换。
class Solution {
public void rotate(int[][] matrix) {
//矩阵转置
trans(matrix);
//交换列
swapColumn(matrix);
}
private void trans(int[][] matrix){
int len = matrix.length;
int tmp;
for(int i = 0; i < len; i++){
for(int j = i; j < len; j++){
tmp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = tmp;
}
}
}
private void swapColumn(int[][] matrix){
int len = matrix.length;
int tmp;
for(int column =0; column < len/2; column++){
for(int row = 0; row < len; row++){
tmp = matrix[row][column];
matrix[row][column] = matrix[row][len-column-1];
matrix[row][len-column-1] = tmp;
}
}
}
}
leetcode 链接:https://leetcode-cn.com/problems/rotate-image/
标签:tmp,matrix,int,矩阵,len,旋转,column,90,row From: https://www.cnblogs.com/hapjin/p/17135813.html