当前位置: 首页 > news >正文

优选算法系列(6. BFS 解决 FloodFill 算法)

FloodFill算法:

BFS 解决 FloodFill 算法:

图像渲染(medium)

题目链接:733. 图像渲染 - 力扣(LeetCode)

算法:

可以利⽤「深搜」或者「宽搜」,遍历到与该点相连的所有「像素相同的点」,然后将其修改成指定的像素即可。

 岛屿数量(medium)

题目链接:200. 岛屿数量 - 力扣(LeetCode)

算法:

遍历整个矩阵,每次找到「⼀块陆地」的时候:
说明找到「⼀个岛屿」,记录到最终结果 ret 里面;
并且将这个陆地相连的所有陆地,也就是这块「岛屿」,全部「变成海洋」。这样的话,我们下次 遍历到这块岛屿的时候,它「已经是海洋」了,不会影响最终结果。
其中「变成海洋」的操作,可以利⽤「深搜」和「宽搜」解决,其实就是 733. 图像渲染 这道题~这样,当我们,遍历完全部的矩阵的时候, ret 存的就是最终结果。

岛屿的最大面积(medium)

题目链接:695. 岛屿的最大面积 - 力扣(LeetCode)

算法:

和上一题差不多,只不过这里每找到一块连着的土地就要加一块面积最后取最大的面积。

被围绕的区域(medium)

题目链接:130. 被围绕的区域 - 力扣(LeetCode)

 

算法:

正难则反。
可以先利用  bfs 将与边缘相连的 '0' 区域做上标记,然后重新遍历矩阵,将没有标记过的 '0' 修改成 'X' 即可。

迷宫中离入口最近的出口(medium)

题目链接:1926. 迷宫中离入口最近的出口 - 力扣(LeetCode)

算法:

利⽤层序遍历来解决迷宫问题,是最经典的做法。
我们可以从起点开始层序遍历,并且在遍历的过程中记录当前遍历的层数。这样就能在找到出口的时候,得到起点到出⼝的最短距离。

相关文章:

  • Ensemble of differential evolution variants(EDEV)
  • 6.综合练习1-创建文件
  • 三轴云台之姿态测量系统篇
  • 10-python面向对象(上)
  • 汽车电子笔记之:基于Tasking编译器怎么制作库文件并将库文件集成进工程释放
  • 内容中台的数字化管理核心是什么?
  • `ConstantPositionProperty` 的使用与应用
  • 汇丰xxx
  • Java学习笔记(多线程):ReentrantLock 源码分析
  • java基础 可拆分迭代器 Spliterator<T>
  • 行星际空间的磁流体动力激波:理论综述
  • 深圳市杉川机器人Verify入职测评SHL题库真题考什么?
  • 蓝桥20250-字符串拼接
  • 爱普生RTC模块RA8804CE在ADAS域控制器的应用
  • ES:账号、索引、ILM
  • Android XML布局与Compose组件对照手册
  • 畅游Diffusion数字人(21):基于Wan2.1的音频驱动数字人FantasyTalking
  • wordpress 利用 All-in-One WP Migration全站转移
  • 蓝桥杯 第 28 场 蓝桥入门赛
  • Java 进阶-全面解析