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?
这道题意思就是给出n*n的方阵,让你顺时针翻动90度,要求是原地进行操作,意思就是不用额外的存储空间。举例说明:
描述的不是很清楚,见谅。。
class Solution {
public:
void rotate(vector<vector<int> > &matrix) {
// Note: The Solution object is instantiated only once and is reused by each test case.
int n = matrix.size();
if (n == 0 || n == 1) return;
for (int i = 0; i < n / 2; ++i)
{
for (int j = i; j < n - i - 1; ++j)
{
int temp = matrix[i][j];
matrix[i][j] = matrix[n - 1 - j][i];
matrix[n - 1 - j][i] = matrix[n - 1 - i][n - 1 - j];
matrix[n - 1 - i][n - 1 - j] = matrix[j][n - 1 - i];
matrix[j][n - 1 - i] = temp;
}
}
}
};