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;
}
}
比起开辟一个空间,这种办法更好,特别是在矩阵特别大的时候。先斜对角变换,再做左右对称变幻


京公网安备 11010502036488号