class Solution {
public:
void rotate(vector<vector<int> > &matrix) {
int n = matrix.size();
if(n < 2){
return;
}
int hl = 0, hr = n - 1, vu = 0, vd = n - 1;
int xbase = 0;
while(hl < hr){
for(int i = hl; i < hr; ++i){
int tmp = matrix[vu][i];
matrix[vu][i] = matrix[vd - i + xbase][hl];
matrix[vd - i + xbase][hl] = matrix[vd][hr - i + xbase];
matrix[vd][hr - i + xbase] = matrix[i][hr];
matrix[i][hr] = tmp;
}
hl++;
hr--;
vu++;
vd--;
xbase++;
}
return;
}
};
class Solution {
public:
void rotate(vector<vector<int> > &matrix) {
int n = matrix.size();
if(n < 2){
return;
}
int hl = 0, hr = n - 1, vu = 0, vd = n - 1;
int len = n - 1;
int xbase = 0;
while(hl < hr){
for(int i = 0; i < len; ++i){
int tmp = matrix[vu][xbase + i];
matrix[vu][xbase + i] = matrix[len - i + xbase][hl];
matrix[len + xbase - i][hl] = matrix[vd][len + xbase - i];
matrix[vd][xbase + len - i] = matrix[xbase + i][hr];
matrix[xbase + i][hr] = tmp;
}
hl++;
hr--;
vu++;
vd--;
xbase++;
len -= 2;
}
return;
}
};