有一個NxN整數矩陣,請編寫一個算法,將矩陣順時針旋轉90度。
給定一個NxN的矩陣,和矩陣的階數N,請返回旋轉後的NxN矩陣,保證N小於等於300。
/*
解題思路:以對角線爲界限,交換兩邊的數組元素,
之後交換數組的列
*/
public int[][] rotateMatrix(int[][] mat, int n) {
// write code here
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
//交換對角線兩邊的元素
if(i!=j){
int temp=mat[i][j];
mat[i][j]=mat[j][i];
mat[j][i]=temp;
}
}//for
}//for
//交換列
for(int i=0;i<n;i++){//行
for(int j=0;j<n/2;j++){
int temp=mat[i][j];
mat[i][j]=mat[i][n-j-1];
mat[i][n-j-1]=temp;
}//for
}//for
return mat;
}