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

相关推荐
To_OC7 小时前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode
金銀銅鐵11 小时前
[Python] 扩展欧几里得算法
python·数学·算法
To_OC13 小时前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode
To_OC1 天前
LC 128 最长连续序列:别上来就排序,O (n) 解法才是这题的灵魂
javascript·算法·leetcode
05Kevin2 天前
lk每日冒险题--数据结构6.27
算法
To_OC2 天前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员
千纸鹤安安2 天前
千问Qwen-AgentWorld来了:一个语言模型搞定七大Agent场景,GPT-5.4都输了
算法
七牛开发者3 天前
MCP 到底是什么?为什么 Agent 都想接上它
算法·aigc·agent