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

顺时针旋转矩阵

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-11 15:37
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-15 17:24
点赞 评论 收藏
分享
想按时下班的大菠萝在...:隔壁学校的,加油多投, 实在不好找可以下个学期开学找,把算法八股准备好,项目有空再换换
投了多少份简历才上岸
点赞 评论 收藏
分享
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-16 12:23
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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