思路:
数组翻转。时间复杂度O(N^2),空间复杂度O(1)。
先沿副对角线翻转;
再沿中心线翻转。
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int m = matrix.size();
//diagonal
for(int i = 0; i < m; ++i) {
for(int j = 0; j < m - i; ++j) {
swap(matrix[i][j], matrix[m - j - 1][m - i - 1]);
}
}
//midline
for(int i = 0; i < m/2; ++i) {
for(int j = 0; j < m; ++j) {
swap(matrix[i][j], matrix[m - i - 1][j]);
}
}
}
};
本文详细阐述了矩阵旋转操作的高效算法实现,通过沿副对角线和中心线两次翻转来完成矩阵的旋转,提供了空间复杂度为O(1)的时间复杂度优化方案。
1550

被折叠的 条评论
为什么被折叠?



