有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 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,
因为它不是在上下左右四个方向上与初始点相连的像素点。

代码

class Solution {public int[][] floodFill(int[][] image, int sr, int sc, int newColor) {int n=image.length,m=image[0].length,target=image[sr][sc];if(target==newColor) return image;int[][] dir=new int[][]{{-1,0},{1,0},{0,1},{0,-1}};Queue<int[]> queue=new LinkedList<>();queue.offer(new int[]{sr,sc});while (!queue.isEmpty()){int[] cur=queue.poll();int cx=cur[0],cy=cur[1];for(int[] d:dir){int nx=cx+d[0],ny=cy+d[1];if(nx<0||nx>=n||ny<0||ny>=m||image[nx][ny]!=target) continue;queue.offer(new int[]{nx,ny});}image[cx][cy]=newColor;}return image;}
}

leetcode733. 图像渲染(bfs)相关推荐

  1. leetCode--733.图像渲染

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

  2. [Leetcode][第733题][JAVA][图像渲染][BFS][DFS]

    [问题描述][简单] [解答思路] 千万不要想复杂了 不是三维空间 是一维空间 ! 本题要求将给定的二维数组中指定的「色块」染成另一种颜色.「色块」的定义是:直接或间接相邻的同色方格构成的整体. 可以 ...

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

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

  4. LeetCode简单题之图像渲染

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

  5. 733.图像渲染(主讲题意)

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

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

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

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

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

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

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

  9. 733. Flood Fill 图像渲染

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

最新文章

  1. VC下提前注入进程的一些方法3——修改程序入口点
  2. 自定义notebook扩展插件_Jupyter notebook安装扩展插件
  3. 为了去重复,写了一个通用的比较容器类,可以用在需要比较的地方,且支持Lamda表达式...
  4. python matplotlib显示图片_Python OpenCV ——Matplotlib显示图片
  5. dedecms调用当前栏目的子栏目怎么操作
  6. MySQL中concat以及group_concat的使用
  7. jQuery原理第五天
  8. Kafka单机安装Version1.0.1(自带Zookeeper)
  9. 秒懂,手机射频芯片有卵用 (zz)
  10. RN学习笔记01:概述、特点与环境搭建
  11. dedecms织梦(一)
  12. Linux系统配置成简单的路由器
  13. .NET 是什么意思
  14. 主成分分析法案例_机器学习理论(五)主成分分析法
  15. 给BERT加一个loss就能稳定提升?斯坦福+Facebook最新力作!
  16. OpenStack 存储服务 Cinder介绍和控制节点部署 (十三)
  17. jenkins+testNG
  18. AS-修改APP图标和名字
  19. 无法忘却的旋律:《荷东》、《猛士》各专辑的曲目列表
  20. 计算机桌面空白图标如何删除,桌面上有两个i空白文件的图标删不掉怎么办急急急...

热门文章

  1. stat函数(stat、fstat、lstat)
  2. 【工作经验分享】java图片转文字
  3. MMKV集成与原理,成功跳槽阿里!
  4. ASP.NET MVC Filter过滤机制(过滤器、拦截器)
  5. 领扣(LeetCode)对称二叉树 个人题解
  6. VS2015 定时服务及控制端
  7. npm link run npm script
  8. array_combine()
  9. git学习心得之从远程仓库克隆
  10. Python3.1-标准库之Numpy