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位置

相关推荐
陌路2015 分钟前
S15 排序算法--归并排序
数据结构·算法·排序算法
智者知已应修善业16 分钟前
【c# 想一句话把 List<List<string>>的元素合并成List<string>】2023-2-9
经验分享·笔记·算法·c#·list
B站_计算机毕业设计之家35 分钟前
深度学习:python人脸表情识别系统 情绪识别系统 深度学习 神经网络CNN算法 ✅
python·深度学习·神经网络·算法·yolo·机器学习·cnn
星释1 小时前
Rust 练习册 :Luhn Trait与Trait实现
网络·算法·rust
ゞ 正在缓冲99%…1 小时前
leetcode1770.执行乘法运算的最大分数
java·数据结构·算法·动态规划
abcefg_h2 小时前
链表算法---基本算法操作(go语言版)
算法·链表·golang
小O的算法实验室2 小时前
2022年IEEE TITS SCI2区TOP,基于切线交点和目标引导策略的无人机自主路径规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
Mr_Oak2 小时前
【multi-model】moco系列&SimCLR&BEiT
人工智能·深度学习·神经网络·算法·计算机视觉·transformer·对比学习
尼古拉斯·纯情暖男·天真·阿玮2 小时前
动态规划——子序列问题
java·算法·动态规划
立志成为大牛的小牛3 小时前
数据结构——四十、折半查找(王道408)
数据结构·学习·程序人生·考研·算法