由外层向内层遍历,每层都是一个正方形的四边。每条边需要更换len-1个。逆时针更换,最开始的存在temp里。
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int n=matrix.size();
for(int layer=0;layer<n/2;layer++){
int len=n-layer*2;
for(int right=0;right<len-1;right++){
int temp=matrix[layer][layer+right];
matrix[layer][layer+right]=matrix[layer+len-1-right][layer];
matrix[layer+len-1-right][layer]=matrix[layer+len-1][layer+len-1-right];
matrix[layer+len-1][layer+len-1-right]=matrix[layer+right][layer+len-1];
matrix[layer+right][layer+len-1]=temp;
}
}
}
};