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

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

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

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

示例 1:

输入:
image = [[1,1,1],[1,1,0],[1,0,1]]
sr = 1, sc = 1, newColor = 2
输出: [[2,2,2],[2,2,0],[2,0,1]]
解析:
在图像的正中间,(坐标(sr,sc)=(1,1)),
在路径上所有符合条件的像素点的颜色都被更改成2。
注意,右下角的像素没有更改为2,
因为它不是在上下左右四个方向上与初始点相连的像素点。

注意:
image 和 image[0] 的长度在范围 [1, 50] 内。
给出的初始点将满足 0 <= sr < image.length 和 0 <= sc < image[0].length。
image[i][j] 和 newColor 表示的颜色值在范围 [0, 65535]内。

来源:力扣(LeetCode)


???
题目大意:
首先,你别看输入输出样例。越看越懵,,
有一幅图画,上面有各种颜色(用数字0-65535表示不同颜色)。像素就是二维坐标。通过坐标可以知道该像素是啥颜色。然后给你一个坐标(sr,sc)和一个替换颜色newColor。
(sr,sc)本身的颜色我们记为color.
要求你从(sr,sc)开始,遍历上下左右相邻的像素点,如果相邻的像素点的颜色是color,则把他改为替换颜色newColor;如果该点的颜色和替换颜色newColor一样,不在遍历他的相邻像素。循环。。。。

int x[4]={1,-1,0,0};int y[4]={0,0,-1,1};vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int newColor) {int color=image[sr][sc];dfs(image,sr,sc,color,newColor);return image;}void dfs(vector<vector<int>>& image,int sr,int sc,int color,int newColor){if(sr<0||sr>=image.size()||sc<0||sc>=image[0].size()) return;if(color!=image[sr][sc]||newColor==image[sr][sc]) return;image[sr][sc]=newColor;for(int i=0;i<4;i++) dfs(image,sr+x[i],sc+y[i],color,newColor);}
当时newColor==image[sr][sc]没想到。题意太难。。。

733.图像渲染(主讲题意)相关推荐

  1. LeetCode 733. 图像渲染(DFS/BFS)

    文章目录 1. 题目 2. 解题 2.1 DFS 2.2 BFS 1. 题目 有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间. 给你一个坐标 (sr ...

  2. 文巾解题 733. 图像渲染

    1 题目描述 2 解题思路 注意一点,如果第一个要渲染的点,颜色和要渲染成的颜色是一样的,那么我们直接返回.不然的话会死循环. 2.1 广度优先遍历 广搜是使用队列来实现的 class Solutio ...

  3. LeetCode:733. 图像渲染(java版)——BFS是渣男/女,DFS是方知有

    题外话:看完题目,是不是一头雾水.有疑问就对了,不知道出题者的语文老师看了有啥感想. 题目意思其实很简单,就是给你一个初始坐标点(sr,sc),找和该点附近像素值相同的坐标,而这附近的定义就是上下左右 ...

  4. 733. Flood Fill 图像渲染

    有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间. 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newCol ...

  5. LeetCode(733)——图像渲染(JavaScript)

    有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间. 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newCol ...

  6. LeetCode简单题之图像渲染

    题目 有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间. 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 new ...

  7. 上帝视角任意切换:三维重建和图像渲染是怎么结合的?

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 导读 本文介绍了3D图像网站Photo Synth及其前身Photo Tourism,并讲解了它们的两 ...

  8. IOS之未解问题--关于IOS图像渲染CPU和GPU

    前言:先上一个图.关于UIKit底层渲染机制,这个有待以后花大把时间收集资料和学习,然后汇总,将整篇"未解问题"去除. 反思:半个月前阿里电话面试,问道一个问题图像渲染什么时候回用 ...

  9. Boost:在OpenCL并将图像渲染为OpenGL中的纹理

    Boost:在OpenCL并将图像渲染为OpenGL中的纹理 实现功能 C++实现代码 实现功能 Boost的compute模块,在OpenCL并将图像渲染为OpenGL中的纹理 C++实现代码 #i ...

最新文章

  1. NIO : selector、channel、buffer的实例
  2. 新生替代Reflector的反编译软件ILSpy
  3. C++ Primer 5th笔记(9)chapter9 顺序容器 forward_list
  4. 天翼云从业认证(3.3)天翼云网络产品
  5. 被寄予厚望的区块链 能否为游戏行业带来新的曙光?
  6. php asp 发起post请求,PHP用curl函数POST请求到ASP页面提示无效请求
  7. Java数组在内存中的分配
  8. Latex所有数学符号一览
  9. matlab管道泄漏定位,在Matlab中分析基于小波变换的管道泄漏定位方法
  10. thermal系列(6)-thermal-engine守护进程
  11. 前端人脸识别解决方案
  12. ES与传统数据库,为什么用ES?
  13. 【A类】云计算、存储、网络、服务器等课程集
  14. python能做_Python能做什么?超乎你的想象
  15. 红旗linux hba卡wwn,Redhat Linux下安装HBA卡并查看WWN号
  16. JavaScript对象及函数
  17. typora修改为百度搜索引擎
  18. 5.4非线性反馈移位寄存器/5.5序列密码攻击法
  19. C++学习笔记(一) 基础语法 —参考阿发你好
  20. InfluxDB2.2查看修改数据存储路径

热门文章

  1. spi nor flash使用汇总
  2. 米扑博客:总结分享 WordPress显示评论者IP归属地、浏览器、终端设备、电信运营商...
  3. Eclipse复制或修改项目后,把项目部署后发现还是原来的项目名称
  4. 记一次lnmp经历 nginx 多个php版本支持配置
  5. android ORM框架LitePal 封装SQLite
  6. 最详细的JavaScript和事件解读
  7. Android 改变窗口标题栏的布局
  8. 【JQuery】可直接编辑的表格
  9. 超级变态的MySQL语句[2012-9-20]
  10. python 输入文件名查找_Python实现的根据文件名查找数据文件功能示例