You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
class Solution {
public:
void rotate(vector<vector<int> > &matrix) {
int matsize = matrix.size();
int rount = matrix.size() / 2;
for(int ii = 0; ii < rount; ii ++) {
for(int jj = ii; jj < matsize - ii - 1; jj ++) {
// (ii, jj), (jj, matsize - ii - 1), (matsize - ii - 1, matsize - jj - 1), (matsize - jj - 1, ii)
int temp = matrix[ii][jj];
matrix[ii][jj] = matrix[matsize - jj - 1][ii];
matrix[matsize - jj - 1][ii] = matrix[matsize - ii - 1][matsize - jj - 1];
matrix[matsize - ii - 1][matsize - jj - 1] = matrix[jj][matsize - ii - 1];
matrix[jj][matsize - ii - 1] = temp;
}
}
}
};