/** * 【题目名称】旋转图像<p> * 【题目来源】https://leetcode.cn/problems/rotate-image/description/ * * @author 潘磊,just_panlei@just.edu.cn * @version 1.0 */classSolution{/** * 将指定方阵顺时针旋转90度。 * * @param matrix 指定方阵。 */publicvoidrotate(int[][]matrix){intn=matrix.length;// 方阵的维度int[][]ans=newint[n][n];// 顺时针旋转90度后的新方阵/* 顺时针旋转图像公式: new[i][j] = old[n-j-1][i] */for(inti=0;i<n;i++){for(intj=0;j<n;j++){ans[i][j]=matrix[n-j-1][i];}}/* 用ans更新matrix */for(inti=0;i<n;i++){for(intj=0;j<n;j++){matrix[i][j]=ans[i][j];}}}}/** * 【题目名称】旋转图像<p> * 【题目来源】https://leetcode.cn/problems/rotate-image/description/ * * @author 潘磊,just_panlei@just.edu.cn * @version 2.0 */classSolution{/** * 将指定方阵顺时针旋转90度。 * * @param matrix 指定方阵。 */publicvoidrotate(int[][]matrix){intn=matrix.length;// 方阵的维度inti,j,t;/* 首先,将图像水平镜像翻转 */for(i=0;i<n/2;i++){for(j=0;j<n;j++){// 交换关于水平轴对称的元素t=matrix[i][j];matrix[i][j]=matrix[n-i-1][j];matrix[n-i-1][j]=t;}}/* 其次,将图像沿主对角线翻转 */for(i=1;i<n;i++){for(j=0;j<i;j++){// 交换关于主对角线对称的元素t=matrix[i][j];matrix[i][j]=matrix[j][i];matrix[j][i]=t;}}}}