48. Rotate Image
看了大神的这类翻转问题通用解法
解这类问题就变得非常简单了。

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        reverse(matrix.begin(),matrix.end());
        for(int i = 0;i < matrix.size();i++)
        {
            for(int j = i + 1;j < matrix[i].size();j++)
            {
                swap(matrix[i][j],matrix[j][i]);
            }
        }
    }
};

其实最开始我想通过不断swap,但脑力不够,直到看到大神的解法

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int n = matrix.size();
        int a = 0;
        int b = n-1;
        while(a<b){
            for(int i=0;i<(b-a);++i){
                swap(matrix[a][a+i], matrix[a+i][b]);
                swap(matrix[a][a+i], matrix[b][b-i]);
                swap(matrix[a][a+i], matrix[b-i][a]);
            }
            ++a;
            --b;
        }
    }
};