leetcode48 旋转图像文章来源地址https://www.toymoban.com/news/detail-850601.html
原地算法:不开辟任何数组
先沿 主对角线翻转,然后在沿着中间的竖线翻转
比如:
1 2 3 1 4 7 7 4 1
4 5 6 --------> 沿主对角线翻转 2 5 8 --------> 沿中轴翻转8 5 2
7 8 9 3 6 9 9 6 3
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int n = matrix.size();
// 先沿着主对角线翻转,只需要用上三角即可
for(int i = 0; i < n; i++){
for(int j = 0; j < i; j++){
swap(matrix[i][j], matrix[j][i]);
}
}
// 再沿着中轴(竖中轴)翻转
for(int i = 0; i < n; i++){
for(int j = 0, k = n - 1; j < k; j++,k--){
swap(matrix[i][j],matrix[i][k]);
}
}
}
};
文章来源:https://www.toymoban.com/news/detail-850601.html
到了这里,关于leetcode48 旋转图像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!