FloodFill算法简介(用BFS、DFS算法解决)

FloodFill算法中文名:洪水灌溉

FloodFill通常是这样一类问题,如下图:

负数表示凹陷的土地,正数表示凸起的土地,发洪水/下雨会淹没凹陷的地方

通常会问这几种问题:

1.被淹没的区域有几块

2.被淹没的最大区域面积

3.某块背淹没区域的边长是多少

..................

**本质问题:**找出这块区域中性质相同的连通块

连通块可以使上下左右四个方向连同,也可以是加上斜向八个方向连通

**解决方法:**DFS(深度优先遍历)、BFS(广度优先遍历)

1.DFS(深度优先遍历)

从某个位置开始深度搜素,例如从右上角-1位置开始,先向下到-2,再向下到-10,再向下到-12,-12位置无法继续向下或向左右,倒退回-10,再向左到-4,再向上到-3

2.BFS(广度优先遍历)

从某个位置开始广度搜索,例如从右上角-1位置开始,-1位置上下左右搜索到-2位置,再从-2位置上下左右搜索到-3和-10位置,再分别从-3和-10位置上下左右搜索到-4和-10位置,再从-4和-10位置上下左右搜索到-12位置

相关推荐
_Narcissus_1 小时前
分治&递归
数据结构·c++·笔记·算法·leetcode·递归·分治
明志数科1 小时前
具身智能数据工程全链路解析:从真实产线采集到LeRobot适配
网络·人工智能·算法
小O的算法实验室1 小时前
AAAI-26,Lehmer编码搜索排列空间的理论与实证分析
算法
lch2011_yb1 小时前
CSP-S 2023 密码锁 题解
算法
OPEN-F2 小时前
C++进阶教程:运算符重载与类型转换
java·c++·算法
牧杉-惊蛰2 小时前
将数组对象根据自定义排列
java·开发语言·算法
inquisiter2 小时前
损失函数在标量和矩阵上的求导对比
线性代数·算法·矩阵
离凌寒3 小时前
一、关于st上制作外部烧录算法时软件识别不到算法文件的问题总结
算法
青 春 记 忆4 小时前
LeetCode 283. 移动零|Python 解法详解
python·算法·leetcode