LeetCode算法题-Image Smoother(Java实现)

LeetCode --- 661. Image Smoother 解题报告 Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding down) of all the 8 surrounding cells and itself. If a cell has less than 8 surro 阅读详情

这是悦乐书的第282次更新,第299篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第150题(顺位题号是661)。给定表示图像灰度的2D整数矩阵M,您需要设计一个平滑器以使每个单元的灰度变为所有8个周围单元及其自身的平均灰度(向下舍入)。如果一个单元的周围单元少于8个,那么尽可能多地使用单元。例如:

输入:[[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):floor(3/4)= floor(0.75)= 0

对于点(0,1),(1,0),(1,2),(2,1):floor(5/6)= floor(0.83333333)= 0

对于点(1,1):floor(8/9)= floor(0.88888889)= 0


注意:

  • 给定矩阵中的值在[0,255]的范围内。

  • 给定矩阵的长度和宽度在[1,150]的范围内。

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 解题

题目的意思是根据给定的二维数组,将其周围的相邻元素和其自身的值加起来算平均值,一次计算最多是9个单元格(包含自身)。题目所给的那个示例,M[0][0]这个元素只用算4个单元格元素的平均值即可,因为另外几个都是边界。所以,根据题目的意思,直接翻译过来就行,外面两层循环控制当前取哪个点展开计算,内层两层循环控制当前这个点需要计算周围那些相邻的单元格,算完平均值后,重新赋值即可。

public int[][] imageSmoother(int[][] M) {
    if (M == null || M.length == 0 || M[0].length == 0) {
        return M;
    }
    int row = M.length, col = M[0].length;
    int[][] result = new int[row][col];
    for (int i=0; i<row; i++) {
        for (int j=0; j<col; j++) {
            int count = 0;
            int sum = result[i][j];
            for (int k=i-1; k <= i+1; k++) {
                for (int h=j-1; h <= j+1; h++) {
                    if (0 <= k && k < row && 0 <= h && h <col) {
                        sum += M[k][h];
                        count++;
                    }
                }
            }
            result[i][j] = sum/count;
        }
    }
    return result;
}

03 小结

算法专题目前已日更超过四个月,算法题文章150+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

高通ISP模块全解析:从Raw到JPEG的18个关键处理步骤(附避坑指南) 本文全面解析高通ISP模块从Raw到JPEG的18个关键处理步骤,涵盖原始数据预处理、色彩科学处理链、画质增强与降噪等核心环节。通过实战调优经验,揭示ISP架构中的技术原理与工程实践要点,帮助开发者避免常见问题,提升移动影像处理质量。 阅读详情

相关推荐

保姆级教程:用TI IWR6843雷达板跑通3D人体追踪demo(附CCS/UniFlash避坑指南)

本文提供了一份详尽的TI IWR6843毫米波雷达开发板3D人体追踪demo实现指南,涵盖开发环境搭建、工程导入编译、固件烧录及可视化工具配置全流程。特别针对CCS和UniFlash使用中的常见问题给出解决方案,帮助开发者快速掌握3D People Tracking技术应用。

weixin_29159441的博客 515

LeetCode算法题整理(200题左右)

Leetcode

qq_38253797的博客 1万+

初识Renode

1. 简介 Renode是Antmicro公司发布的一个开发框架,使得开发人员通过模拟物理硬件系统(包括CPU、外围设备、传感器、环境以及节点之间的有线或无线介质),加速物联网和嵌入式系统的开发。它可在PC上通过软件对嵌入式设备进行模拟,可模拟Cortex-M、Cortex-A、RISC-V和其他CPU,并可模拟外设以及各种通信总线和接口。其指令模拟器使用C语言开发,外设模拟器使用C#语言开发,测试及输出层面的内容则用python编写。 Renode官网:Renodehttps://renode.io/

牧羊女 5295

LeetCode Image Smoother

原题链接在这里:https://leetcode.com/problems/image-smoother/description/ 题目: Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of eac...

weixin_30802171的博客 157

基于Cadence IC617的共源级放大器设计:从直流到交流的virtuoso仿真实践

本文详细介绍了使用Cadence IC617的Virtuoso平台进行共源级放大器设计的完整仿真流程。从电路图绘制、直流工作点分析,到负载电阻RD的参数扫描及其对增益和带宽的影响,再到交流小信号频率响应仿真,提供了从理论到实践的全面指导,帮助初学者掌握模拟集成电路设计的核心仿真技能。

jj890的博客 480

Photoscan+Smart3D+CC组合建模实战:如何用三款工具打造高精度实景模型

本文详细介绍了如何整合Photoscan、Smart3D和ContextCapture三款软件,构建高效高精度的实景三维建模工作流。通过利用Photoscan稳健的空三解算、Smart3D精准的刺点优化,以及ContextCapture强大的最终建模能力,该方案能有效应对复杂地形与海量数据,显著提升模型质量与生产效率,适用于测绘、文化遗产数字化等专业领域。

weixin_29230649的博客 104

POJ1408 Fishnet

题目大意:就是求划分的四边形的最大面积,博哥叫我码这道水题玩玩,照码了~~1A呵呵~ 思路:枚举,克莱姆求交点水过~~~ 用二维数组结构体保存整个正方形内的点~~搞输入保存的时候有点恶心~~   AC program: #include #include #include #include #include #include using namespace std; double a[3

muxi@Achilles的专栏 941

SmsForwarder v6.4.0 + Flask API 实战:5步搭建手机验证码自动化接收服务

本文详细介绍了如何利用SmsForwarder v6.4.0和Flask API构建企业级验证码自动化处理系统。通过5个关键步骤,包括系统架构设计、Android端配置、Flask服务端实现、企业级部署方案以及实战应用场景扩展,帮助开发者高效处理短信验证码,提升自动化测试和数据采集的工作效率。

weixin_30292745的博客 394

leetcode 661 Image Smoother

class Solution { public int[][] imageSmoother(int[][] M) { if (M == null || M.length == 0) return new int[0][0]; int x=M.length; int y=M[0].length; int [][] result=

MRxjh的博客 468

CDR插件开发之CPG插件017 - 在VS2019中实现CPG插件调试(自动写入CPG、自动启动CDR)

在上篇文章中,讲解了图像导出实例:当文档打开后,自动导出当前页面的图像到系统临时文件夹。在代码编写过程中,导出图像路径变量tmpFileName 被修改了很多次,有没有办法实现调试功能,通过控制台打印变量,而不用编译成CPG后再通过消息框来调试?当然是可以的。本篇作为单独篇,以CDR X8版本为例,讲解CPG插件在VS2019中实现调试的具体方法。 工程搭建准备 按照惯例,本篇文章的序号为017,请直接拷贝上一个工程016-export-image(拷贝前最好清理掉 Debug、x64等编译目录..

Zebe 1811

10.嵌入式控制器EC实战 GPIO开发流程

文章目录1.General Control Register (GCR),通用控制寄存器,地址0x1602.GPDRA—GPDRJ端口数据寄存器组(共10组)3.Port Control n Registers (GPCRn, n = A0-I7),端口控制寄存器4.GPIO端口编程指导编程步骤端口初始化使用InitGPIOReg数据结构初始化所有端口默认工作模式读取输入引脚的值(STATE_ACin()): IT8502中各个引脚的描述见下表所示: 在嵌入式控制器EC的IT8502主控芯片中,通过芯片的

qq_30135687的博客 2285

java图像波浪算法_LeetCode算法题-Image Smoother(Java实现)

这是悦乐书的第282次更新,第299篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第150题(顺位题号是661)。给定表示图像灰度的2D整数矩阵M,您需要设计一个平滑器以使每个单元的灰度变为所有8个周围单元及其自身的平均灰度(向下舍入)。如果一个单元的周围单元少于8个,那么尽可能多地使用单元。例如:输入:[[1,1,1],[1,0,1][1,1,1]]输出:[[0,0,0...

weixin_39921689的博客 190

【Docker】完美解决拉取镜像超时报错:ERROR: Get https://registry-1.docker.io/v2/

因为我们下载的镜像是外网的镜像资源,所以下载的速度会非常的慢,甚至大概率下载时会报错,所以需要我们配置一个国内的服务器镜像地址,国内服务器镜像地址有很多,这里咱们就说一下阿里镜像加速器的配置方法。

liu_chen_yang的博客 12万+

leetcode 661. Image Smoother

Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding down 四舍五入取靠近零值的舍入数字 ) of

淡然坊 1241

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LeetCode 661 : Image Smoother(python)

好久没更新博客了,最近沉迷于Android和深度学习的研究,python、c++、java等语言都会接触,难免会把一些语法层面的东西记混了。也很久没上Leetcode,感觉现在脑子不够用,只够刷Easy的题。周末闲来无聊逛了一下,看到一道平滑滤波的题。没想到Leetcode也这么与时俱进,竟然出现了图像处理的相关题目。不过由于对python列表复制的不熟,还是成功跳进了一个坑。仅以此文做一些总结。

marlonlyh的博客 1874

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

leetcode 661. Image Smoother(图片平滑)

Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding down) of all the 8 surrounding cells and itself. If a cell has less than 8 surro

蓝羽飞鸟的博客 285

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

leetcode (Image Smoother)

Title:Image Smoother    661 Difficulty:Easy 原题leetcode地址:https://leetcode.com/problems/image-smoother/   1.  注意有些数的周围没有8个数(3个或者5个的) 时间复杂度:O(n^2),嵌套for循环。 空间复杂度:O(1),没有申请额外的空间。 /** * 注...

hsx1612727380的专栏 233

661. Image Smoother

原题链接:https://leetcode.com/problems/image-smoother/description/ import java.util.Arrays; /** * Created by Joe on 2018/3/15. * 661. Image Smoother * https://leetcode.com/problems/image-smoother/d...

用时间去蜕变 244

(Easy) Image Smoother LeetCode

Description: Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding dow...

weixin_30247159的博客 95

[leetcode] 661. Image Smoother

题目:Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding down) of all the 8 su...

jing16337305的博客 163

LeetCode-Image Smoother

LeetCode Java smoother

坟头草一米七五 176

Leetcode661 Image Smoother

题目Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding down) of all the 8 sur...

XINGKONG_04的博客 432

【Leetcode】661. Image Smoother

题目地址: https://leetcode.com/problems/image-smoother/ 给定一个二维矩阵MMM,返回一个新矩阵AAA,使得A[i][j]A[i][j]A[i][j]是M[i][j]M[i][j]M[i][j]的888个邻居及其自己的平均值(向下取整)。如果不足888个邻居,有多少个算多少个。 代码如下: public class Solution { public int[][] imageSmoother(int[][] M) { int[][] r

数学、算法爱好者的博客 125

【Lintcode】1102. Image Smoother

题目地址: https://www.lintcode.com/problem/image-smoother/description 给定一个mmm行nnn列二维矩阵AAA,要求返回一个矩阵BBB,使得B[i][j]B[i][j]B[i][j]是A[i][j]A[i][j]A[i][j]及其八个邻居总和的平均(如果出界了那有多少个算多少个)。 代码如下: public class Solution { /** * @param M: a 2D integer matrix * @r

数学、算法爱好者的博客 125

[LeetCode] Image Smoother 图片平滑器

Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding down) of all the 8 su...

weixin_30776863的博客 102

LeetCode-661:Image Smoother (灰度图像平滑)

给定表示图像灰度的二维整数矩阵M,平滑图像,使每个单元格的灰度值成为所有包括周围8个单元格及其本身的平均灰度

大树先生的博客 1564
上一篇: LeetCode算法题-Robot Return to Origin(Java实现)
下一篇: LeetCode算法题-Non-decreasing Array(Java实现)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值