class Solution {
public:
vector<vector<int> > rotateMatrix(vector<vector<int> > mat, int n) {
// write code here
// mat[row][col] = mat[col][n-1-row]
// 即翻转过后,第一行的数变为最后一列的数
// 方法:可以通过先进行水平翻转,然后进行主对角线翻转
// mat[row][col] = mat[n-1-row][col]
// mat[row][col] = mat[col][row]
// 将两步骤联合在一起:mat[row][col] = mat[col][n-1-row],即为顺时针旋转90°
for(int i = 0; i < n/2; i++) // 水平翻转
for(int j = 0; j < n; j++)
swap(mat[i][j], mat[n-1-i][j]);
for(int i = 0; i < n; i ++) // 主对角线翻转
for(int j = i; j < n; j++)
swap(mat[i][j], mat[j][i]);
return mat;
}
};