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

以leetcode417题为例

题目解析:

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

算法原理解析:

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

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

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

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

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

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

代码编写:

相关推荐
apcipot_rain18 小时前
CSP集训错题集 第八周 主题:基础图论
算法·图论
天选之女wow18 小时前
【代码随想录算法训练营——Day57(Day56周日休息)】图论——53.寻宝
算法·图论
文火冰糖的硅基工坊18 小时前
[人工智能-大模型-103]:模型层 - M个神经元组成的单层神经网络的本质
python·算法·机器学习
无语子yyds19 小时前
C++双指针算法例题
数据结构·c++·算法
羑悻的小杀马特19 小时前
ProtoBuf语法揭秘:探秘编译魔法与性能优化策略,解锁多层级选项配置的底层奥秘
c++·编程·protobuf
fpcc19 小时前
C++编程实践——eventFD
linux·c++
仟濹19 小时前
「经典数字题」集合 | C/C++
c语言·开发语言·c++
Skrrapper19 小时前
【STL】set、multiset、unordered_set、unordered_multiset 的区别
c++·算法·哈希算法
SunnyKriSmile19 小时前
函数递归求最大值
c语言·算法·函数递归
傻啦嘿哟19 小时前
爬虫数据去重:BloomFilter算法实现指南
爬虫·算法