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; } } } };
浙公网安备 33010602011771号