LeetCode-矩阵相关

一、旋转矩阵

1.旋转90°

矩阵转置后再沿着对称线对称即可

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int n = matrix.size(); 
        if(n==0||n==1){
            return;
        }
        for(int i=0;i<n;i++){
            for(int j =0;j<i;j++){
                int temp = matrix[i][j];
                matrix[i][j]=matrix[j][i];
                matrix[j][i]=temp;
            }
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<n/2;j++){
                int temp = matrix[i][j];
                matrix[i][j]=matrix[i][n-1-j];
                matrix[i][n-1-j]=temp;
            }
        }
    }
};

 

2.旋转180°

即中心对称

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int n = matrix.size(); 
        if(n==0||n==1){
            return;
        }
       
        for(int i=0;i<n/2;i++){
            for(int j=0;j<n;j++){
                int temp = matrix[i][j];
                matrix[i][j]=matrix[n-1-i][n-1-j];
                matrix[n-1-i][n-1-j]=temp;
            }
        }
        if(n%2==1){
            int i=n/2;
            for(int j=0;j<n/2;j++){
                int temp = matrix[i][j];
                matrix[i][j]=matrix[n-1-i][n-1-j];
                matrix[n-1-i][n-1-j]=temp;
            }
        }
        
    }
};

 

posted @ 2021-03-06 08:51  徐不二  阅读(57)  评论(0)    收藏  举报