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

顺时针旋转矩阵

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

class Solution {
public:
    vector<vector<int> > rotateMatrix(vector<vector<int> > mat, int n) {
        // write code here
        // mat[row][col] = mat[col][n-1-row]
        // 即翻转过后,第一行的数变为最后一列的数
        // 方法:可以通过先进行水平翻转,然后进行主对角线翻转
        // mat[row][col] = mat[n-1-row][col]
        // mat[row][col] = mat[col][row]
        // 将两步骤联合在一起:mat[row][col] = mat[col][n-1-row],即为顺时针旋转90°
        for(int i = 0; i < n/2; i++) // 水平翻转
            for(int j = 0; j < n; j++)
                swap(mat[i][j], mat[n-1-i][j]);

        for(int i = 0; i < n; i ++) // 主对角线翻转
            for(int j = i; j < n; j++)
                swap(mat[i][j], mat[j][i]);
        return mat;
    }
};
全部评论

相关推荐

07-17 12:07
门头沟学院 Java
勇敢牛牛不怕困难
投递OPPO等公司7个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-16 18:03
点赞 评论 收藏
分享
07-17 12:09
门头沟学院 Java
讲的口干舌燥,头都晕了怎么要讲这么长啊
码农索隆:没事,你口干舌燥,他不一定会看,
投递小鹏汽车等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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