417. 太平洋大西洋水流问题

🌊 太平洋大西洋水流问题详解:DFS 反向遍历的经典应用

🧩 题目描述

在一个 m × n 的二维矩阵 heights 中,每个单元格代表地形的海拔高度。矩阵的左边界和上边界与 太平洋 相邻,右边界和下边界与 大西洋 相邻。

雨水从任意格子开始,可以向 北、南、东、西 四个方向流动,但只能流向高度小于或等于当前格子的方向。也就是说,水只能“流下去”或“流平”。

你需要找出所有能同时流向 太平洋和大西洋 的格子坐标,并以二维数组的形式返回这些坐标。


🧠 解题思路分析

❓ 如何判断水能否从一个格子同时流向两个大洋?

如果我们从每个格子开始,尝试向两个大洋流动,会带来巨大的计算量,而且容易陷入重复搜索。

✅ 反向思维是关键!

我们不从每个格子“流出去”,而是从两个大洋“倒流回来”!

也就是说:

  • 从太平洋边界(左边、上边)出发,沿着高度递增的方向,标记能“反向流到”的所有格子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值