题目描述
解法:大风车(C++)
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int n = matrix.size();
if(!n) return;
int r = (n>>1)-1; // 左上角区域的最大行下标
int c = (n-1)>>1; // 左上区域的最大列下标
for(int i=r;i>=0;i--)
{
for(int j=c; j>=0;j--)
{
swap(matrix[i][j], matrix[j][n-i-1]);
swap(matrix[i][j], matrix[n-i-1][n-j-1]);
swap(matrix[i][j], matrix[n-j-1][i]);
}
}
}
};