要将一个矩阵顺时针旋转90°,数学公式是new[j][n-i-1]=old[i][j],要原地翻转的话,可以先水平翻转,即变成m[n-i-1][j],再主对角线翻转(即转置),变成m[j][n-i-1]
class Solution {
public:
void rotate(vector<vector<int> > &matrix) {
int n = matrix.size();
for (int i = 0; i < n / 2; ++i)
for (int j = 0; j < n; ++j)
swap(matrix[i][j], matrix[n - i - 1][j]);
for (int i = 0; i < n; ++i)
for (int j = 0; j < i; ++j)
swap(matrix[i][j], matrix[j][i]);
}
};