//暴力解法,行优先读,列优先写到一个临时二维数组中,最后再写回原数组
// class Solution {
// public void rotate(int[][] matrix) {
// int row = matrix.length;
// int col = matrix[0].length;
// int[][] matrix_temp = new int[row][row];
// for(int i = 0; i < row; i++){
// for(int j = 0; j < col; j++){
// matrix_temp[j][row-i-1] = matrix[i][j];
// }
// }
// for(int i = 0; i < row; i++) {
// for(int j = 0; j < col; j++) {
// matrix[i][j] = matrix_temp[i][j];
// }
// }
// }
// }
//先水平翻转再主对角线翻转
class Solution {
public void rotate(int[][] matrix) {
int n = matrix.length;
// 水平翻转
for (int i = 0; i < n / 2; ++i) {
for (int j = 0; j < n; ++j) {
int temp = matrix[i][j];
matrix[i][j] = matrix[n - i - 1][j];
matrix[n - i - 1][j] = temp;
}
}
// 主对角线翻转
for (int i = 0; i < n; ++i) {
for (int j = 0; j < i; ++j) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
}
}