有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 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. 使用 PHP 构建的 Web 应用如何避免 XSS 攻击
  2. hihocoder 后缀自动机专题
  3. 【upc 9541 矩阵乘法】非正解
  4. 2013上半年-学习目录
  5. 贪心算法之买卖股票的最佳时机 II
  6. boost::signals2::deconstruct 作为构建后的工厂函数的测试程序
  7. jps、jinfo、jstat、jstack、jmap、jconsole等命令简介
  8. POJ2104 (平方分割)二分查找理解。
  9. linux如何全局搜索目录,Linux 全目录全文搜索
  10. 简述单片微型计算机屏蔽的作用,单片机原理及应用试题库 - 答案
  11. 抖音不服诉腾讯管辖权被转至深圳中院 上诉获受理
  12. JZOJ 3504. 运算符(calc)
  13. 嵌入式成长轨迹52 【Zigbee项目】【CC2430基础实验】【在PC用串口收数并发数】...
  14. python tkinter获取屏幕大小_使用Python构建属于自己的Markdown编辑器
  15. 【全套完结】数字信号处理----全套Matlab实验报告【建议保存】
  16. 阿里巴巴图标库字体iconfont旋转
  17. 网站安全检测:8款非常有用的免费 Web 安全测试工具
  18. 关于日期格式你必须知道的坑( yyyy-MM-dd HH:mm:ss SSS)
  19. 数据挖掘与六度分隔理论
  20. 表格组件列属性formatter和styler使用方法

热门文章

  1. Linux 打印简单日志(一)
  2. 现在做Android开发有前途吗?复习指南
  3. 灵魂拷问!一起刷完了这份1307页的安卓面试宝典吧,不吃透都对不起自己
  4. gitlab中的CI
  5. 快速排序和快速选择(quickSort and quickSelect)算法
  6. 听了一堂《**学院》的课,我也是醉了
  7. Android中的onActivityResult和setResult方法的使用
  8. Wind River颁布车用信息文娱行使Linux平台
  9. ExtJs常用数据源store
  10. Android7.0反射类找不到的问题