给你一幅由 N × N
矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。
不占用额外内存空间能否做到?
我想可能这种方法,可能会在科学计算方面计算很大矩阵的转置时会被用到吧,其他方面会这麽要求空间吗?
正方形的旋转90° = 先对角线对折,再水平对折
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int n = matrix.size();
for(int i = 0; i < n; ++i)
for (int j = i + 1; j < n; ++j){
swap(matrix[i][j],matrix[j][i]);
}
for (int i = 0; i < n; ++i)
for (int j = 0; j < n/2; ++j){
swap(matrix[i][n - 1 - j],matrix[i][j]);
}
}
};