解题思路
可以把给定二维矩阵划分为如图所示四部分。
这样只需要遍历其中一个区域,与其余三个区域相应位置的元素进行交换即可。
代码
void rotate(int** matrix, int matrixSize, int* matrixColSize){
int temp,hang,lie;
hang=lie=matrixSize/2;
if(matrixSize%2){
lie++;
}
for(int i=0;i<hang;i++){
for(int j=0;j<lie;j++){
temp=matrix[i][j];
matrix[i][j]=matrix[matrixSize-j-1][i];
matrix[matrixSize-j-1][i]=matrix[matrixSize-i-1][matrixSize-j-1];
matrix[matrixSize-i-1][matrixSize-j-1]=matrix[j][matrixSize-i-1];
matrix[j][matrixSize-i-1]=temp;
}
}
}
AC截图