Rotate Image解题报告

Description:

You are given an n x n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).

Follow up:
Could you do this in-place?

Link:

https://leetcode.com/problems/rotate-image/#/description

解题方法:

先将矩阵按照逆对角线翻转,在按照上下的中线翻转即可。

Tips:

注意在翻转的时候只用遍历一半的元素,如果遍历所有的元素则不会有变换(因为在遍历另一半的时候又会被翻转回来)。

Time Complexity:

O(N^2)

完整代码:

void rotate(vector<vector<int>>& matrix) 
    {
        int len = matrix.size();
        if(len == 0)
            return;
        
        for(int i = 0; i < len; i++)
            for(int j = 0; j < len-i; j++)  //只能交换逆对角线一边的数
                Swap(matrix[i][j], matrix[len-1-j][len-1-i]);
        
        for(int i = 0; i < len/2; i++)
            for(int j = 0; j < len; j++)    //只能交换一半的数
                Swap(matrix[i][j], matrix[len-1-i][j]);
    }
    void Swap(int& a, int& b)
    {
        int temp = a;
        a = b;
        b = temp;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ImageMagick学习之 The Definitive Guide To ImageMagick The De...
    焉知非鱼阅读 5,202评论 0 2
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,354评论 0 33
  • 题目 You are given an n x n 2D matrix representing an image...
    Al73r阅读 1,733评论 0 0
  • 小柳 距第一次见面 过去已经半年 你问我 是否 那时已经喜欢 这是开什么玩笑 本人哪里有那么贱 何况当时 不过围观...
    小柳姐姐阅读 1,630评论 0 0
  • 行李架满了。 d74列车从吉林出发终到北京,我呢,只需在沈阳北倒次车再直达学校。11点38上车,之前吃完不早不中的...
    小zqn阅读 2,732评论 0 0

友情链接更多精彩内容