题解 | #顺时针旋转矩阵#

顺时针旋转矩阵

http://www.nowcoder.com/practice/2e95333fbdd4451395066957e24909cc

空间复杂度为O(n*n)的题解

class Solution {
public:
    vector<vector<int> > rotateMatrix(vector<vector<int> > mat, int n) {
        // write code here
        vector<vector<int> > res(n,vector<int>(n,0));
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                res[i][j]=mat[n-1-j][i];
            }
        }
        return res;
    }
};

空间复杂度为O(1) 的题解(原地变换)

先进行对角线交换,在进行左右交换

class Solution {
public:
    vector<vector<int> > rotateMatrix(vector<vector<int> > mat, int n) {
        // write code here
        int i,j,temp;
        for(i=0;i<n;i++){  //先根据对角线(左上--右下)交换
            for(j=0;j<i;j++){
                temp=mat[i][j];
                mat[i][j]=mat[j][i];
                mat[j][i]=temp;
            }
        }
        for(i=0;i<n;i++){  //再进行左右交换
            for(j=0;j<n/2;j++){
                temp=mat[i][j];
                mat[i][j]=mat[i][n-j-1];
                mat[i][n-1-j]=temp;
            }
        }
        return mat;
    }
};
全部评论
第二步是上下变换吧
点赞 回复 分享
发布于 2024-03-01 17:31 陕西

相关推荐

牛客吹哨人:哨哥晚点统一更新到黑名单:能救一个是一个!26届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1525833
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务