You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up:
方法二:
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
方法一:
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
//先将矩阵转置,而后再reverse矩阵的每一行
if(matrix.size()<2)
return;
for(int i=0;i<matrix.size();i++)
{
for(int j=i+1;j<matrix.size();j++)
swap(matrix[i][j],matrix[j][i]);
reverse(matrix[i].begin(),matrix[i].end());
}
}
};
方法二:
</pre><pre name="code" class="cpp">class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int len=matrix.size()-1;
vector<vector<int> > res=matrix;
for(int i=0;i<matrix.size();i++)
{
for(int j=0;j<matrix[i].size();j++)
res[i][j]=matrix[len-j][i];
}
matrix=res;
}
};