观察原矩阵与顺时针旋转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;
}
}
}

京公网安备 11010502036488号