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]);
            }
        }
    }
};

 

posted @ 2019-04-29 16:35  有梦就要去实现他  阅读(100)  评论(0编辑  收藏  举报