算法32---图片平滑器
1、题目:
包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。
示例 1:
输入: [[1,1,1],[1,0,1],[1,1,1]] 输出: [[0, 0, 0],[0, 0, 0],[0, 0, 0]] 解释: 对于点 (0,0), (0,2), (2,0), (2,2): 平均(3/4) = 平均(0.75) = 0 对于点 (0,1), (1,0), (1,2), (2,1): 平均(5/6) = 平均(0.83333333) = 0 对于点 (1,1): 平均(8/9) = 平均(0.88888889) = 0
注意:
- 给定矩阵中的整数范围为 [0, 255]。
- 矩阵的长和宽的范围均为 [1, 150]。
2、思路:
重点在采用额外的空间来去掉重复部分。
3、代码:
def imageSmoother(self, M):""":type M: List[List[int]]:rtype: List[List[int]]"""#使用空间r , c = len(M),len(M[0])res = [[0 for i in range(c)] for j in range(r)]for i in range(r):for j in range(c):neighbor = [M[i-1][j-1] if i-1 >= 0 and j-1 >= 0 else -1,M[i-1][j] if i-1 >= 0 else -1,M[i-1][j+1] if i-1 >=0 and j+1 < c else -1,M[i][j+1] if j+1 < c else -1,M[i][j-1] if j-1 >= 0 else -1,M[i+1][j] if i+1 < r else -1,M[i+1][j-1] if i+1 < r and j-1 >= 0 else -1,M[i+1][j+1] if i+1 < r and j+1 < c else -1]count = neighbor.count(-1)res[i][j] = int((sum(neighbor) + count + M[i][j]) /(9 - count))return res
转载于:https://www.cnblogs.com/Lee-yl/p/9639313.html
算法32---图片平滑器相关推荐
- LeetCode简单题之图片平滑器
题目 包含整数的二维矩阵 M 表示一个图片的灰度.你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽 ...
- D23 LeetCode 661.图片平滑器(简单)
一.题目 二.思路(自己) 题目给出的过滤器是3*3的,但是对于图像的大小,我们是不能确定的.只需要考虑边缘的特殊情况,其余则是统一处理. 如果我所有的同一考虑:价格判断条件(该元素上一行和下一行是否 ...
- C#LeetCode刷题之#661-图片平滑器( Image Smoother)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3730 访问. 包含整数的二维矩阵 M 表示一个图片的灰度.你需要 ...
- 扩展、统计线性化和无迹RTS平滑器
扩展.统计线性化和无迹RTS平滑器 扩展RTS平滑器(ERTSS) 扩展RTS平滑器 统计线性化RTS平滑器(SLRTSS) SLTRSS 无迹RTS平滑器(URTSS) 叠加型URTSS: 非叠加型 ...
- iVX案例制作(1)—图片查看器
(一)功能: 图片以缩略图形式存放,可以点击将图片放大. 滚动鼠标实现图片放大与缩小. 点击左右箭头查看上下图片. 点击浮层可关闭图片. (二)效果演示 预览地址:图片查看器 (三)步骤: 1.点击对 ...
- (原创)使用AsyncTask(带修改线程池方式)+自定义ImageLoader+LRU算法对图片三级缓存及其显示优化(只有在ListView滑动停止的时候才去网络请求获取图片数据)
前言: 以前看了些关于图片优化处理缓存比较全的视频(感谢慕风网),现在回顾觉得还是挺好的也就总结出来下,感觉针对图片做处理这块还真的用的比较多,本文章只要使用异步线程AsyncTask.自定义的Ima ...
- 图片播放器的实现1——利用Image2LCD提取图片数据并显示
以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. 参考内容 (1)https://xiefor100.blog.csdn.net/article/details/71941527 (2) ...
- [分享]牛牛图片查看器[仿QQ图片查看器]及大致原理说明
这是一个完全通过Duilib来实现的一个图片查看器,仿照QQ图片查看器的效果实现,希望大家喜欢. 先看一下使用的截图吧: 做相关说明如下: 一:使用说明 1. 通过命令行调用,传递图片路径即可打开图片 ...
- JavaSwing图片绘制,实现简单的图片查看器
刚学到JavaSwing图片绘制,于是自己做了个简易的图片查看器小程序,在这里分享给大家,请多多指教. 话不多说先上部分图: 绘制图片需要自定义一个控件,我们这里写一个继承自JPanel的类,重写pa ...
最新文章
- 给力2011-东莞市南洋计算机软件有限公司 携手10大厂商提供企业安全有效节省成本解决方案...
- kenrel volatile关键字
- python排课问题_排课问题分析
- 启动64位 IIS 32位应用程序的支持
- 达梦数据迁移工具的使用
- java types.varchar_java statement.registerOutParameter(5, java.sql.Types.VARCHAR)返回值长度限制...
- 《Spark大数据分析实战》——第2章Spark开发与环境配置
- 《算法导论》第三版第13章 红黑树 练习思考题 个人答案
- 8个微信小程序UI组件框架
- 创业公司操蛋的面试过程
- python查单词音标_有没有通过读音或音标就能查出英语单词的办法,比如发音查词软件?...
- Win10提示对电脑进行保护已阻止此应用无法打开
- 中国传统色的魅力|这8组中国风传统颜色你一定要收藏
- Theorem、Proposition、Lemma和Corollary等的解释与区别
- 结构体运算符与取余_c语言取余(c语言去整和取余)
- 利用Python实现四则运算
- 大数据实时处理半期总结报告
- JPEG图像压缩探索_DCT变换的应用
- 使用FreePBX和第三方线路对接
- 【名企招聘】4月29日19点,巨杉数据库-带着岗位来招人啦
热门文章
- 研华数据采集卡如何采集压力信号转化为数字信号_感知世界的模拟量信号
- npm 查看登陆账号_自定义npm 及问题整理
- android 焦点动画,在一个视图/imageview上获得焦点时,实现android缩放动画?_animation_开发99编程知识库...
- oracle取本月最后一天是星期几_在oracle里,如何取得本周、本月、本季度、本年度的第一天和最后一天的时间...
- @Controller
- 怎么在堆叠柱状图中体现百分比_微生物门类堆叠柱状图一文解决
- 系统与服务器断开了连接不上,win7系统电脑玩跑跑卡丁车出现与服务器断开连接的解决方法...
- linux时间老是跳快6分钟,Linux超省时小技巧,让你原来要十分钟解决的问题现在只用一秒钟...
- java 多列 统计_java – 如何计算多列(colspan)HTML表的宽度?
- mysql排序区分大小写吗_MySQL的order by时区分大小写