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?
Subscribe to see which companies asked this question.
A[0][0] -> A[0][3]A[1][0] -> A[0][2]
A[0][1] -> A[1][3]A[2][0] -> A[0][1]
A[0][2] -> A[2][3]A[3][0] -> A[0][0]
A[0][3] -> A[3][3]
由此可得:对于n * n 的2维矩阵
A[i][j] -> A[j][n-1-i]
public:
void rotate(vector<vector<int>>& matrix) {
int i,j;
int n = matrix.size();
vector<vector<int> >tempMatrix = matrix;
for(i = 0;i < n;i++){
for(j = 0;j < n;j++){
tempMatrix[j][n-1-i] = matrix[i][j];
}//for
}//for
for(i = 0;i < n;i++){
for(j = 0;j < n;j++){
matrix[i][j] = tempMatrix[i][j];
}//for
}//for
}
};