给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。
样例
给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]]
交换加转置
方阵旋转九十度可以通过换行加转置来完成,刚好vector是可以用swap函数的,对于单个的元素肯定也是可以的。这样想来就没什么难得了,程序简洁:
void rotate(vector<vector<int>> &matrix) {
int sz=matrix.size();
if(sz<=1)
return ;
for(int i=0;i<sz/2;i++)
{
swap(matrix[i],matrix[sz-1-i]);
}
for(int i=0;i<sz;i++)
{
for(int j=i;j<sz;j++)
{
swap(matrix[i][j],matrix[j][i]);
}
}
// write your code here
}
网友评论