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?
这个for循环中的下标非常容易搞混,一定要区分清楚,到底固定哪一列,对于第二个for里面,i相当于常量,要区分清楚是行变还是列变
并不是i代表行,j代表列
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
这个for循环中的下标非常容易搞混,一定要区分清楚,到底固定哪一列,对于第二个for里面,i相当于常量,要区分清楚是行变还是列变
并不是i代表行,j代表列
void rotate(vector<vector<int> > &matrix)
{
int size = matrix.size();
if (size < 2) return;
for (int i = 0; i < size/2; i++)
{
for (int j = i; j < size-i-1; j++)
{
int temp = matrix[i][j];
matrix[i][j] = matrix[size-j-1][i];
matrix[size-j-1][i] = matrix[size-i-1][size-j-1];
matrix[size-i-1][size-j-1] = matrix[j][size-i-1];
matrix[j][size-i-1] = temp;
}
}
}