解题思路
先斜对角线反转,然后再首尾行进行反转即可。
Code
class Solution { public: void show(vector<vector<int>>& a) { for (int i=0;i<a.size();i++) { for (int j=0;j<a.size();j++) { std::cout << a[i][j] << " "; } cout << endl; } } void rotate(vector<vector<int>>& matrix) { int n = matrix.size(); vector<vector<int>>& a = matrix; for (int i=0;i<n;i++) { for (int j=0;j<n-i;j++) { //std::cout << a[i][j] << a[n-1-j][n-1-i] << std::endl; swap(a[i][j], a[n-1-j][n-1-i]); } } //show(a); for (int i=0;i<n/2;i++) { // i 和 n-1-i 行互换 for (int j=0;j<n;j++) { swap(a[i][j], a[n-1-i][j]); } } }};