【刷题日记】48. 旋转图像

简介: 本次刷题日记的第 66 篇,力扣题为:48. 旋转图像,中等

本次刷题日记的第 66 篇,力扣题为:48. 旋转图像中等

一、题目描述:

image.png

旋转图像,看上去明明是旋转表格,咋就旋转图像呢?


二、这道题考察了什么思想?你的思路是什么?

看看旋转图像这个题给我们讲述了哪些重要信息:

  • 题目给出了一个二维的矩阵,是 n*n 的,意味着一定是正方形的,宽高一定是一样的
  • 要求我们将上述的二维矩阵转顺时针旋转 90 度,而且要求我们在原来的地址上面修改,而不是返回一个结果

分析

题目很简短,表达的意思也很明确,留下的只有我们爱思考的小脑袋

仔细思考一下这个题,咱们暂时可以想到的解法可以有 2 个方向:

  • 第一是直接在原来的数组上进行数据和数据之间的交换,不会引入额外过多的空间消耗
  • 第二种便是,我们引入一个帮助的数组空间,处理完毕后,将帮助数据 copy 给原有的 matrix 数组

上述两种方式,相对无脑一点的自然是第二种,咱们可以稍加思考,对于一个矩阵,咱们遍历的时候是从左到有,从上到下

那就先来一个无脑的,毕竟比较容易上手

那么如果是要旋转 90 度,咱们还是按照同样的方法遍历的话,是不是对于原数组来说,就是从下到上,从左到右的遍历就可以了?

理论上常规遍历是这样的:

image.png

那么旋转 90 度的时候,我们可以理解成是这样的:

image.png

看了这个图,我们是不是就可以理解如果我们引入一个帮助空间,按照左图的逻辑遍历原有数组,数据给到帮助空间中,最后将帮助空间拷贝给到原有数组空间上

其实看到这个图就非常好理解了,接下来就是编码实现的过程了,注意遍历的顺序

三、编码

根据上述逻辑和分析,我们就可以翻译成如下代码

编码如下:

func rotate(matrix [][]int) {
    n := len(matrix)
    help := make([][]int, n)
    for i := range help {
        help[i] = make([]int, n)
    }
    for i, row := range matrix {
        for j, v := range row {
            help[j][n-1-i] = v
        }
    }
    copy(matrix, help)
}

四、总结:

image.png

这种实现方式看上去还是比较简单的,思路清晰的话,实现起来就会很方便,可以看出时间复杂度是 O(n^2) ,咱们是遍历了每一个格子

空间复杂度也是 O(n^2) , 咱们开辟了一个 help 二维数组,引入了额外的空间消耗

当然,我们也可以选择思考第一种方式来解这个题,咱们就要好好找旋转前和旋转后矩阵每个格子之间的关系了,再会

原题地址:48. 旋转图像

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

image.png

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~

目录
打赏
0
0
0
0
63
分享
相关文章
ColorFlow:腾讯和清华大学联合推出的图像序列着色模型,通过参考图像的颜色对黑白漫画进行着色生成彩色漫画
ColorFlow是由清华大学和腾讯ARC实验室共同推出的图像序列着色模型,通过检索增强、上下文学习和超分辨率技术,确保黑白图像序列的着色与参考图像颜色一致,适用于漫画、动画制作等工业应用。
470 15
ColorFlow:腾讯和清华大学联合推出的图像序列着色模型,通过参考图像的颜色对黑白漫画进行着色生成彩色漫画
微信小游戏 案例一 像素飞机
微信小游戏 案例一 像素飞机
43 2
【刷题日记】473. 火柴拼正方形
本次刷题日记的第 52 篇,力扣题为:473. 火柴拼正方形,中等
101 0
【刷题日记】1184. 公交站间的距离
好久不刷题,没有锻炼思维,感觉脑袋都要生锈了,刷题感觉还是要从简单题刷题才能慢慢找到感觉
|
9月前
每日一题——旋转图像
每日一题——旋转图像
【刷题日记】75. 颜色分类
本次刷题日记的第 60 篇,力扣题为:75. 颜色分类,中等
前端知识案例学习15-实现3d得旋转
前端知识案例学习15-实现3d得旋转
100 0
前端知识案例学习15-实现3d得旋转
推荐五个好用的小软件,放大快乐,缩小悲伤
分享是一种力量,它能放大快乐,它能缩小悲伤,我喜欢分享一些好用的软件给大家,今天也要继续这个习惯,为大家介绍五个好用的小软件。
103 0
算法创作|纸牌三角形
算法创作|纸牌三角形
77 0
图像模糊复原(代码讲解)#去雾#毕业设计
图像模糊复原(代码讲解)#去雾#毕业设计
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等