Lecode48 翻转求法

    科技2022-08-28  104

    Lecode 48 矩阵旋转90度,我的写法是 先对角线翻转,然后左右翻转

    #include<iostream> #include<vector> using namespace std; void Print_matrix(vector<vector<int>> &&matrix)//右值引用 { for (int i = 0;i < matrix.size();i++) { for (int j = 0;j < matrix[i].size();j++) { cout << matrix[i][j] << " "; } cout << endl; } } class Solution { public: void rotate(vector<vector<int>>& matrix) { int temp; //旋转90度,可以理解先按照对角线对称,然后翻转 for (int i=0;i< matrix.size();i++) { /*for (int j = 0;j <=i;j++) { temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; }*/ /*for (int j = i;j < matrix.size();j++) { temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; }*/ } cout << "对角线翻转之后结果" << endl; Print_matrix(move(matrix)); for (int i = 0;i < matrix.size();i++) { for (int j = 0;j < matrix.size()/2;j++) { temp = matrix[i][j]; matrix[i][j] = matrix[i][matrix.size()-1-j]; matrix[i][matrix.size() - 1 - j] = temp; } } cout << "左右翻转之后结果" << endl; Print_matrix(move(matrix)); } }; int main() { vector<vector<int>> matrix{ {1,2,3},{4,5,6},{7,8,9} }; cout << "原始vector二维是" << endl; Print_matrix(move(matrix));//左值转成右值 Solution s; s.rotate(matrix); }``` ```cpp 在这里插入代码片
    Processed: 0.018, SQL: 9