先用一个队列来保存原来矩阵里面的数据,然后按照列逆序,行顺序的方式遍历整个矩阵,并且完成赋值操作。
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
queue<int> temp;
int i = 0, n = matrix.size();
for(; i < n; ++i)
{
for(int j = 0; j < n; ++j)
{
temp.push(matrix[i][j]);
}
}
i = 0;
for(int j = n - 1; j >= 0; --j)
{
for(int k = 0; k < n; ++k)
{
matrix[k][j] = temp.front();
temp.pop();
}
}
}
};