733. 图像渲染---js解法

本文介绍如何使用深度优先搜索策略解决图像渲染问题,通过floodFill函数实现从给定坐标出发,将符合条件的像素点颜色替换为新色值的过程。适合理解图像处理和递归算法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述:

有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。

给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。

为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始坐标相同的相连像素点,……,重复该过程。将所有有记录的像素点的颜色值改为新的颜色值。

最后返回经过上色渲染后的图像。

733. 图像渲染


在这里插入图片描述


解题思路:

该题与岛屿数量—js题解思路一样,大伙可以参考这篇的解题思路~~

var floodFill = function(image, sr, sc, newColor) {
   if(image[sr][sc]===newColor){
       return image
   }
   const oldColor = image[sr][sc]
   function sink(sr,sc){
        if(sr<0||sr>=image.length||sc<0||sc>=image[0].length||image[sr][sc]!==oldColor){
            return 
        }
        image[sr][sc]=newColor
        sink(sr-1,sc)
        sink(sr+1,sc)
        sink(sr,sc-1)
        sink(sr,sc+1)

   }
   sink(sr,sc)
   return image
};
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值