专题五:floodfill算法(太平洋大西洋水流问题)

以leetcode417题为例

题目解析:

整张图,左边深蓝的是太平洋,右边浅蓝的是大西洋,你需要在矩阵中找到一个点,使其可以流向太平洋又可以流向大西洋,并且你每次流的时候只能由高到低,或者相等到相等

算法原理解析:

第一种解法:暴力枚举每一个点是否能流向太平洋和大西洋,也就是一行一行的枚举每一个点

但可能会有重复的路径的枚举,而且会不断的dfs,可能会超时

第二种解法:正难则反,看太平洋的水能由哪留到,也就是枚举从低到高的点,就是水能蔓延的哪

比如从太平洋每一个最上一行和最左一列的每一个点可以蔓延到哪,所有绿色框起来的都可以

在枚举最下面一行和右边一列的所有点能蔓延到哪,

所有重复的点就是可以到太平洋和大西洋 (红色三角可以流向大西洋和绿色方块流向太平洋)

代码编写:

相关推荐
飞川撸码4 分钟前
【LeetCode 热题100】17:电话号码的字母组合(详细解析)(Go语言版)
算法·leetcode·golang·dfs
蒟蒻小袁5 分钟前
力扣面试150题--从前序与中序遍历序列构造二叉树
算法·leetcode·面试
Lazy Dave9 分钟前
C++开源库argh使用教程
c++·开源·argh
奇树谦1 小时前
VTK|显示三维图像的二维切片
c++·vtk·qt5·三维显示
闭月之泪舞1 小时前
初识函数------了解函数的定义、函数的参数、函数的返回值、说明文档的书写、函数的嵌套使用、变量的作用域(全局变量与局部变量)
python·算法·机器学习
老歌老听老掉牙1 小时前
Open CASCADE学习|几何体切片处理:OpenMP与OSD_Parallel并行方案深度解析
c++·学习·open cascade·切片处理
GUIQU.1 小时前
【每日一题丨2025年5.12~5.18】排序相关题
算法·排序·每日一题
哪 吒2 小时前
2025B卷 - 华为OD机试七日集训第2期 - 按算法分类,由易到难,循序渐进,玩转OD(Python/JS/C/C++)
python·算法·华为od·华为od机试·2025b卷
孤寂大仙v2 小时前
【Linux笔记】——Linux线程封装
linux·笔记·算法
superior tigre2 小时前
C++学习:六个月从基础到就业——C++20:范围(Ranges)基础
c++·学习·c++20