一幅由 N × N
矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度
示例:
给定 matrix = 原地旋转输入矩阵,使其变为: |
解决思路:
1、先判断 矩阵 大小是否为 1,若为 1 ,直接返回;否则进行下一步操作
2、先把 矩阵 对角 交换
3、再把 矩阵 水平 交换 即可得到 旋转 90° 的矩阵
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int n = matrix.size();
if(n == 1)
return;
for(int row = 0; row < n; row++)
{
for(int column = row; column < n; column++)
{
swap(matrix[row][column], matrix[column][row]);
}
}
for(int row = 0; row < n; row++)
{
for(int column = 0; column < n / 2; column++)
{
swap(matrix[row][column], matrix[row][n-1-column]);
}
}
}
};