按层操作。
class Solution {
public:
void rotate(vector<vector<int> > &matrix) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int n = matrix.size();
int len = n >> 1;
for(int layer = 0; layer < len; layer ++)
{
int board = n - layer - 1;
for(int i = layer; i < board; i ++)
{
int offset = i - layer;
int tmp = matrix[layer][i];
matrix[layer][i] = matrix[board - offset][layer]; // left to top
matrix[board - offset][layer] = matrix[board][board - offset]; // bottom to left
matrix[board][board - offset] = matrix[layer + offset][board]; // right to bottom
matrix[layer + offset][board] = tmp; //top to right
}
}
}
};