because of the o(1) space limited.
we must rotate every element one by one in the direction of the arrow.
class Solution {
public:
void rotate(vector<vector<int> > &matrix) {
int start = 0;
int end = matrix[0].size()-2;
int length = matrix[0].size()-1;
while(start <= end)
{
int i = start;
for(int j = start;j <= end;j++)
{
int temp = matrix[i][j];
matrix[i][j] = matrix[start+start+length-j][i];
matrix[start+start+length-j][i] = matrix[start+length][start+start+length-j];
matrix[start+length][start+start+length-j] = matrix[j][length+start];
matrix[j][length+start] = temp;
}
start++;
end --;
length = length-2;
}
}
};