using System;

class Solution
{
    public int[][] rotateMatrix(int[][] mat, int n)
    {
        // write code here
        //先斜对角堆成
        for(int i=0;i<n;++i){
            for(int j=i;j<n;j++)
            {
                var temp=mat[i][j];
                mat[i][j]=mat[j][i];
                mat[j][i]=temp;
            }
        }
        for(int i=0;i<n;++i)
        {
            Array.Reverse(mat[i]);
        }
        return mat;
    }
}

比起开辟一个空间,这种办法更好,特别是在矩阵特别大的时候。先斜对角变换,再做左右对称变幻