Rotate Image

来源:互联网 发布:首趣优店可开淘宝店吗 编辑:程序博客网 时间:2024/04/27 15:31

You are given an n x n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).


1、对角翻转加上上下翻转

class Solution {public:    void rotate(vector<vector<int> > &matrix) {        int n = matrix.size();        if(n <= 1) return ;                for(int i = 0 ; i < n ; i++) {            for(int j = 0 ; j < n - i; j++) {                swap(matrix[i][j] , matrix[n-1-j][n-1-i]);            }        }                for(int i = 0 ; i < n / 2 ; i++) {            for(int j = 0 ; j < n ; j++) {                swap(matrix[i][j] , matrix[n-i-1][j]);            }        }    }};
2、建立临时矩阵, 直接旋转得到矩阵

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



0 0
原创粉丝点击