观察原矩阵与顺时针旋转90度的矩阵以及转置矩阵的关系,

1.发现可以通过将转置矩阵的每行做反转,则可得到顺时针旋转90度的矩阵

2.转置矩阵与原矩阵可以通过 a[i][j] 与 a[j][i]互换位置得到

import java.util.*;

public class Solution {
     public int[][] rotateMatrix(int[][] mat, int n) {
        // write code here
        for (int i = 0; i <n ; i++) {
            for (int j = 0; j < i; j++) {
                int tmp = mat[i][j];
                mat[i][j] = mat[j][i];
                mat[j][i] = tmp;
            }
        }
        for (int i = 0; i < n; i++) {
            reverse(mat[i]);
        }
        return mat;
    }
    private void reverse(int[] array){
        int n = array.length;
        for (int i = 0; i < n/2; i++) {
            int tmp = array[i];
            array[i] = array[n-1-i];
            array[n-1-i] = tmp;
        }
    }

}