class Solution {
public void rotate(int[][] matrix) {
if(matrix==null){
return;
}
if(matrix.length==1){
return ;
}
//先转置,再镜像对称
for(int i=1;i<matrix.length;i+=1){
for(int k=0;k<i;k+=1){
int nownum = matrix[i][k];
int renum = matrix[k][i];
matrix[i][k] = renum;
matrix[k][i] = nownum;
}
}
//再镜像对称
int length = (matrix[0].length%2==1)?matrix[0].length/2:matrix[0].length/2-1;
for(int i=0;i<=length;i+=1){
for(int k=0;k<matrix.length;k+=1){
int frontnum = matrix[k][i];
int backnum = matrix[k][matrix[0].length-i-1];
matrix[k][i] = backnum;
matrix[k][matrix[0].length-i-1] = frontnum;
}
}
}
}
旋转图像,这道题没什么好说的先对其进行转置,然后镜像对称。

本文详细介绍了一种矩阵旋转算法,通过先进行矩阵转置,再进行镜像对称操作,实现矩阵的90度顺时针旋转。适用于图像处理等领域。
407

被折叠的 条评论
为什么被折叠?



