48. Rotate Image

  • 图片顺时针旋转 90° 等于 转置 + 水平翻转
  • 图片逆时针旋转 90° 等于 转置 + 垂直翻转
  • 图片旋转 180° 等于 水平翻转 + 垂直翻转

了解了这些,方法明了了起来。

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int len = matrix.size();
        // transpose
        for(int i = 0; i < len; i++){
            for(int j = i+1; j < len; j++){
                int t = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = t;
            }
        }
        // flip horizontal
        for(int i = 0; i < len; i++){
            for(int j = 0; j < len/2; j++){
                int t = matrix[i][j];
                matrix[i][j] = matrix[i][len-j-1];
                matrix[i][len-j-1] = t;
            }
        }
        return ;
    }
};