leetcode 48. Rotate Image

48. Rotate Image

1.这个题是顺时针旋转90度,方法是:先以右对角线为轴对称交换,然后以中间行为轴进行交换

2.逆时针旋转90度是以左对角线为轴对称交换,然后以中间行为轴进行交换

3.旋转180度,直接以最中间那个数为对称点进行交换

以对称轴做交换,第一个数组的i和第二个数组的j对应位置,第一个数组的j和第二个数组的i对应位置

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

        for(int i = 0;i < row/2;i++){
            for(int j = 0;j < col;j++){
                swap(matrix[i][j],matrix[row - 1 - i][j]);
            }
        }
    }
};
原文地址:https://www.cnblogs.com/ymjyqsx/p/10791216.html