解题思路:
首先对主对角线两边的元素进行交换
接着走一轮遍历,将第1列和第n列进行交换,第2列和第n-1列进行交换,直至得到最终的矩阵。
代码实现:
public void rotate(int[][] matrix) {
//首先对主对角线的元素进行交换
int temp=0;
int n=matrix.length;
for(int i=0;i<n;i++)
{
for(int j=0;j<i;j++)
{
temp=matrix[i][j];
matrix[i][j]=matrix[j][i];
matrix[j][i]=temp;
}
}
//接着对两边的元素进行交换(如第1列和第四列,第2列和第3列)
for(int i=0;i<n;i++)
{
for(int j=0;j<n/2;j++)
{
temp=matrix[i][j];
matrix[i][j]=matrix[i][n-j-1];
matrix[i][n-j-1]=temp;
}
}
}