题目:48. 旋转图像 - 力扣(LeetCode)
题解
看图说话:
代码
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int m = matrix.size(), n = matrix[0].size();
int high = 0;
int low = m - 1;
// 横中轴对称
while(high < low)
{
for(int i = 0; i < n; i++)
{
std::swap(matrix[high][i], matrix[low][i]);
}
high++;
low--;
}
// 正对角线对称
for(int i = 0; i < m; i++)
{
for(int j = i + 1; j < n; j++)
{
std::swap(matrix[i][j], matrix[j][i]);
}
}
}
};
举一反三
- 顺时针旋转180度
-
顺时针旋转270度
-
逆时针旋转90度
-
逆时针旋转180度
-
逆时针旋转270度