LeetCode48——Rotate Image
将二维矩阵向右旋转90度。
例如
[a00 a01 a02 ; a10 a11 a12 ; a20 a21 a22]
变成:
[a20 a10 a00 ; a21 a11 a01 ; a22 a12 a02]
简单分析一下就是:
第n列变成了第n行,并且每一列内部顺序颠倒过来。
一开始想着怎么交换元素。后来发现困难重重,索引采取了一个简单的办法:
用给定二维数组构造一个一模一样的二维数组,
将这个新构造的二维数组相应位置的value直接赋值给原来的二维数组即可。
代码:
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int len = matrix[0].size()-1;
int i;
int j;
vector<vector<int>>temp(matrix);
for(i=0;i<matrix[0].size();i++)
{
for(j=0;j<matrix[0].size();j++)
{
//swap(matrix[i][j],temp[j][len-i]);
//matrix[i][j]=temp[j][len-i];
matrix[j][len-i]=temp[i][j];
}
}
}
};