【深度优先搜索-简单】733. 图像渲染、面试题 08.10. 颜色填充

leetcode 733. 图像渲染 & 面试题 08.10. 颜色填充(2020.8.16) 【题目】733. 图像渲染 有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。 为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他... 阅读详情

【题目】
在这里插入图片描述在这里插入图片描述在这里插入图片描述
【代码】
【方法1】栈模拟深度优先遍历
就是用栈代替dfs,注意这里如果image[sr][sc]==color程序直接结束,返回原始的image
因为图像渲染就是将原始颜色渲染成新颜色,如果前后颜色相同就没必要渲染,如果不单独判断前后颜色是否相同,直接对图像进行颜色变换,会导致死循环,如果不想判断,那必须记录已经访问过的节点的信息,不重复访问已经访问的节点
在这里插入图片描述

class Solution:
    def floodFill(self, image: List[List[int]], sr: int, sc: int, color: int) -> List[List[int]]:
        stack=[(sr,sc)]
        origin=image[sr][sc]
        if origin==color:
            return image
        while stack:
            sr,sc=stack.pop()
            if 0<=sr<len(image) and 0<=sc<len(image[0]):
                if image[sr][sc]==origin:
                    image[sr][sc]=color
                    stack.append((sr-1,sc))
                    stack.append((sr+1,sc))
                    stack.append((sr,sc+1))
                    stack.append((sr,sc-1))
        return image

【方法2】dfs
在这里插入图片描述

class Solution:
    def floodFill(self, image: List[List[int]], sr: int, sc: int, color: int) -> List[List[int]]:
        stack=[(sr,sc)]
        origin=image[sr][sc]
        if origin==color:
            return image
        def dfs(sr,sc):
            if 0<=sr<len(image) and 0<=sc<len(image[0]):
                if image[sr][sc]==origin:
                    image[sr][sc]=color
                    dfs(sr-1,sc)
                    dfs(sr+1,sc)
                    dfs(sr,sc+1)
                    dfs(sr,sc-1)
        dfs(sr,sc)
        return image

【方法4】
在这里插入图片描述

class Solution:
    def floodFill(self, image: List[List[int]], sr: int, sc: int, color: int) -> List[List[int]]:
        queue=[(sr,sc)]
        origin=image[sr][sc]
        if origin==color:
            return image
        while queue:
            sr,sc=queue.pop(0)
            if 0<=sr<len(image) and 0<=sc<len(image[0]):
                if image[sr][sc]==origin:
                    image[sr][sc]=color
                    queue.append((sr-1,sc))
                    queue.append((sr+1,sc))
                    queue.append((sr,sc+1))
                    queue.append((sr,sc-1))

        return image
Unity 面试篇|(七)Unity渲染与Shader篇 【全面总结 | 持续更新】 LightMap:就是指在三维软件⾥实现打好光,然后渲染把场景各表⾯的光照输出到贴图上,最后⼜通过引擎贴到场景上,这样就使物体有了光照的感觉。是指在显示器上为了显示出图像⽽经过的⼀系列必要 操作。渲染管道中的很多步骤,都要将⼏何物体从⼀个坐标系中变换到另⼀个坐标系中去。主要步骤有: 本地坐标->视图坐标->背⾯裁剪->光照->裁剪->投影-> 视图变换->光栅化。GPU工作流程:顶点处理、光栅化、纹理贴图、像素处理。 阅读详情

相关推荐

iOS经典面试题之深入分析图像的解码渲染与基本原理

UlImage 是 iOS 中处理图像的高级类,创建一个 UlImage 实例只会加载 Data Buffer,将图像显示到屏幕上才会触发解码,也就是 Data Buffer 解码为 Image Buffer,Image Buffer 也关联在 Ullmage 上。 Ullmage 关联的图像是否已解码对外部是不透明的,没有办法判断,其实在日常的内存消耗来讲,图片的渲染是特别消耗内存的。接下来来探究一下究竟是为什么?............

╰つ栺尖篴夢ゞ 2620

【Unity面试篇】Unity 面试题总结甄选 |Unity渲染&Shader相关 | ❤️持续更新❤️

为了方便大家可以重点复习某个模块,所以将各方面的知识点进行了拆分并更新整理了新的内容,并对之前的版本中有些模糊的地方进行了纠正。 进阶篇中有些题目在基础篇已经有了,这里划分模块时有些会再加一遍用于加深印象学习。 所以本篇文章就来整理一下Unity渲染&Shader相关,说不准就会面试的时候就会遇到!

努力前行,总会成为自己心中的那道光 2万+

LeetCode每日两题01:图像渲染 (均1200道) 方法:深搜/广搜 数组

解题思路:我们从给定的起点开始,进行广度优先搜索。每次搜索到一个方格时,如果其与初始位置的方格颜色相同,就将该方格加入队列,并将该方格的颜色更新,以防止重复入队。因为初始位置的颜色会被修改,所以我们需要保存初始位置的颜色,以便于之后的更新操作。...

那人独钓寒江雪 1620

全端面试题15(canvas)

在前端开发领域, 元素和相关的 API 是面试中经常被提及的主题。下面是一些常见的关于 HTML5 Canvas 的面试问题及解答示例: 是 HTML5 引入的一个用于图形渲染的标签。它本身并不具备绘图能力,而是一个容器,需要使用 JavaScript 来绘制图形。通过 或者 获取到 canvas 元素后,使用 方法来获取一个 2D 渲染上下文。 用于设置填充图形的颜色,而 设置描边的颜色。使用 开始路径, 定位起点, 绘制线段,然后 来实际绘制。当需要保存和恢复 的状态时,比如变换矩阵、颜色

God's asylum的博客 2567

计算机图形学 面试题

计算机图形学 面试题 一些简单的面试题 字数够了吧,面试的时候可能会用上

5分钟搞定DataDome滑块验证码:最新Capsolver API实战教程(含代理配置)

本文提供了一份利用Capsolver API快速自动化破解DataDome滑块验证码的实战教程。文章深入剖析了DataDome验证码的环境指纹与行为分析机制,并重点详解了确保成功率的住宅代理配置、API集成步骤及令牌使用等核心环节,帮助开发者高效集成稳定可靠的自动化解决方案。

milk8的博客 500

腾讯社招面试复习系列之二,图形篇

最近在准备复习面试腾讯游戏开发,接下来会出一系列复习文章,总结一些他人的面试题与经验,以及之前自己面试时经验,并给出一些自己的见解,供大家一起学习。

qq_17347313的博客 2303

手把手教你用CubeMX给GD32F103点灯、调串口(附完整工程)

本文详细介绍了如何使用CubeMX为GD32F103开发板配置GPIO点灯和串口通信,包含完整的工程创建、代码构建和测试流程。特别强调了GD32与STM32的差异点及常见避坑技巧,帮助开发者快速上手GD32开发。

weixin_42566424的博客 313

技术美术常见面试题整理

通过将几何和材质信息存储在G-Buffer中,可以实现多个光源的逐像素光照计算、后期处理效果和渲染技术,如SSAO(屏幕空间环境光遮蔽)、SSR(屏幕空间反射)等。通常,MSAA适用于硬件支持的场景,FXAA和SMAA适用于后处理效果,而TXAA则适用于高质量图像的需求,但需要更高的计算性能。它是在OpenGL中进行高效渲染的重要工具之一,特别适用于复杂几何体的绘制和动态几何变化的场景。(Occlusion Culling)是一种用于优化渲染性能的技术,旨在避免渲染那些在场景中被其他物体遮挡的不可见对象。

yasin的博客 2774

STM32 烧录报错Invalid ROM Table

STM32 烧录报错Invalid ROM Table

热爱科技,物联,程序开发等 1735

AD9361 官方例程

文章目录一、官方资料1.1 介绍1.2 下载 和 使用1.3 相关资料二、步骤2.1 在Vivado中构建HDL2.2 在SDK中构建No- OS总结 一、官方资料 1.1 介绍 HDL参考设计介绍:AD9361 HDL Reference Designs 无操作系统介绍:AD9361 No-OS Software 1.2 下载 和 使用 HDL下载:Download HDL 在Vivado中构建HDL:Building HDL No-OS下载:Download No-OS 1.3 相关资料 AD

weixin_44630490的博客 3万+

LeetCode 面试题 08.10. 颜色填充(BFS)

编写函数,实现许多图片编辑软件都支持的「颜色填充」功能。待填充的图像用二维数组 image 表示,元素为初始颜色值。初始坐标点的横坐标为 sr 纵坐标为 sc。需要填充的新颜色为 newColor 。 「周围区域」是指颜色相同且在上、下、左、右四个方向上存在相连情况的若干元素。 请用新颜色填充初始坐标点的周围区域,并返回填充后的图像。

晴空๓ 1448

从报错到优化:一次Gauss JDBC参数限制排查实录(32767参数上限避坑指南)

本文详细记录了排查GaussDB JDBC驱动因绑定参数数量超过32767上限而抛出`PSQLException`(报错信息为`Tried to send an out-of-range integer as a 2-byte value`)的全过程。文章深入分析了该限制的底层协议原理,并提供了应用层分批查询、使用临时表以及优化业务逻辑等多种解决方案,旨在帮助开发者规避此参数上限陷阱,构建更稳健的数据访问层。

rgv23456789的博客 220

(刷题笔记) Leetcode 733. 图像渲染

目录题目解题思路代码(C++) 题目 有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。 为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始坐标相同的相连像素点,……,重复该过程。将所有有记录的像素点的颜色值改为新

github_38683027的博客 364

AMD KFD的SDMA Packet 类型和定义解析

本文详细分析了AMD GPU架构中的SDMA(System Direct Memory Access)数据传输机制,重点介绍了其核心数据结构——SDMA Packet。SDMA通过8种主要Packet类型(包括内存拷贝、数据写入、屏障同步、中断触发等)实现高效主机-设备通信。每种Packet采用位域结构和联合体封装设计,在保证功能完整性的同时实现空间优化。这些Packet支持丰富的访问属性和扩展字段,适用于高性能数据搬运、内存初始化、任务同步、性能分析等场景,为GPU计算提供了灵活高效的数据传输解决方案。

图形/计算GPU的驱动与虚拟化技术分享园地 1255

YOLOv11改进策略【卷积层】| DEConv: 强度信息与梯度特征融合的细节增强 适用于小目标与细节目标检测任务

本文记录的是利用 模块优化 的目标检测网络模型。(Detail-Enhanced Convolution,细节增强卷积)的设计旨在,解决 目标检测网络中传统普通卷积缺乏目标细节相关先验、对小目标边缘、目标与背景边界等关键细节捕捉能力不足的问题,同时避免引入额外参数量与计算开销,以适配 对实时推理性能与检测精度的双重需求。DEA-Net: Single image dehazing based on detail-enhanced convolution and content-guided atte

Limiiiing的博客 1501

[java]——leetcode刷题(深度优先搜索)(简单21+中等25)

前言 简单题 1.最小高度数

jokerxsy的博客 538

snmp MIB详解

每个 MIB 对象都由一个对象标识符(OID)和对象类型组成。OID 是一个由多个数字组成的路径(类似于 IP 地址),它标识了 MIB 中对象的层次结构。

dlz0836的博客 3724

OpenGL笔试题

简述FrameBuffer,RenderBuffer,Depth Buffer,Framebuffer attachment,Stencil buffer的关系 简述利用OpenGL执行图像叠加(大PNG图像叠加有alpha通道的小PNG图像),写出步骤 列出着色器的四个内置变量和十个内置函数 OpenGL如何处理浮点的不精确问题(即如何避免多次计算不一致的问题) 三维纹理如何存...

179

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

渲染程序的笔试准备

必考的就是渲染管线了 几何阶段 obj space->world space->eyespace->project to CVV to clip(frustum culling)->project to screen coordinate space ->primitive assmbly 光栅阶段 ->rasterization->p...

anfu8346的博客 167

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

西山居C++实习笔试(20220311)

一、选择题(1道) 区别一下shading和domain shading(具体是啥选项忘记了)。 二、多选题(9道) 1、简单的栈模拟,{A, B, C, D, E}的方式入栈,B和D先出(B先D后,有多少种可能)? 简单模拟一下即可。 2、表达式???(忘记了) 3、图形渲染流程?(不同着色器的顺序) 4、内存池的作用? 5、sizeof 6、向量(0,0,1)绕(1,1,1)顺时针旋转60度后的三个坐标轴坐标。 7、thread和process的区别? 8、9、忘记了。 三、填空

qq_47910685的博客 2900

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

游戏开发面试题 -- 图形学篇

图形学和3D数学篇,收录了几十道面试真题,也欢迎小伙伴后续提供以便继续更新。因第二篇内容主要来源于网上,未原创发表在公众号,文章链接如下。游戏开发面试答案篇(二)-- Unity篇 https://zhuanlan.zhihu.com/p/5545294231. 渲染管线(1). 渲染管线就是一堆原始图形数据经过各种变化处理最终出现在屏幕的过程。渲染管线可分为三个阶段,应用程序阶段,几何阶段,...

音视频开发进阶 2094

游戏开发入门(三)图形渲染

视频链接:游戏开发入门(三)图形渲染(3节课 时常:约2小时20分钟) 视频链接:一堂课学会shader——渲染拓展课程(3节课 时常:约1小时20分钟) 笔记与总结(请先学习视频内容): 游戏开发入门(三)图形渲染笔记: 渲染一般分为离线渲染与实时渲染,游戏中我们用的都是实时渲染。 1.实时渲染又可以分为2D渲染与3D渲染。 早期的2D渲染,是通过把一块内存(图片像素数据)...

Jerish的博客 3万+

图形图像渲染原理

目录 引言 GPU 历史 GPU 图形渲染流水线 GPU 存储系统 GPU 流处理器 CPU-GPU 异构系统 GPU 资源管理模型 CPU-GPU 工作流 屏幕图像显示原理 引言 原文链接http://chuquan.me/2018/08/26/graphics-rending-principle-gpu/ 作为程序员,我们或多或少知道可视化应用程序都是由 CPU 和 ...

AI-Echo的博客 9829
上一篇: 【深度优先搜索-简单】1971. 寻找图中是否存在路径
下一篇: 【深度优先搜索-简单】463. 岛屿的周长
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值