这道题题面简单,类似于矩阵转置,按照钟表的顺时针方向选择90度,自己先画个简单的图:
矩阵的阶数为4,于是可以得到以下规律:
a00 = a30
a01 = a20
a21 = a22
·
·
·
即:a[i][j] = a[n-1-i][j](n为阶数)
于是就得到如下代码:
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
vector<vector<int>> tmp(matrix);
int n = matrix[0].size();
for(int i = 0; i < n; ++i)
{
for(int j = 0 ; j < n; ++j)
{
matrix[i][j] = tmp[n-1-j][i];
}
}
}
};