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

以leetcode417题为例

题目解析:

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

算法原理解析:

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

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

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

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

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

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

代码编写:

相关推荐
老赵的博客11 分钟前
c++ 是静态编译语言
开发语言·c++
Macre Aegir Thrym24 分钟前
MINIST——SVM
算法·机器学习·支持向量机
Young_Zn_Cu1 小时前
LeetCode刷题记录(持续更新中)
算法·leetcode
天选之女wow1 小时前
【代码随想录算法训练营——Day31】贪心算法——56.合并区间、738.单调递增的数字、968.监控二叉树
算法·leetcode·贪心算法
lixinnnn.2 小时前
贪心:火烧赤壁
数据结构·c++·算法
小小前端_我自坚强2 小时前
前端算法相关详解
前端·算法
Predestination王瀞潞2 小时前
类的多态(Num020)
开发语言·c++
Predestination王瀞潞2 小时前
类的继承(Num019)
开发语言·c++
Nuyoah11klay2 小时前
华清远见25072班C++学习假期10.3作业
c++
前端 贾公子2 小时前
《Vuejs设计与实现》第 5 章(非原始值响应式方案)下 Set 和 Map 的响应式代理
数据结构·算法