🗒️417. 太平洋大西洋水流问题
2025-3-8
| 2025-3-8
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Mar 8, 2025 01:48 AM
有一个 m × n 的矩形岛屿,与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。
这个岛被分割成一个由若干方形单元格组成的网格。给定一个 m x n 的整数矩阵 heights , heights[r][c] 表示坐标 (r, c) 上单元格 高于海平面的高度 。
岛上雨水较多,如果相邻单元格的高度 小于或等于 当前单元格的高度,雨水可以直接向北、南、东、西流向相邻单元格。水可以从海洋附近的任何单元格流入海洋。
返回网格坐标 result 的 2D 列表 ,其中 result[i] = [ri, ci] 表示雨水从单元格 (ri, ci) 流动 既可流向太平洋也可流向大西洋 。

DFS

水的顺流而下

这里需要使用回溯算法。也就是在 DFS 递归返回途中,将 visited 数组恢复为原来的值。为什么呢?在本题中,我们需要从每一个网格点尝试一下,这一次访问过了,下一次还是需要访问该节点,才能得到正确的解。
也这因为如此,我们这个算法的复杂度时间十分高,为 ,会导致超时。
添加记忆化,参考 追风少年 的答案,添加一个记忆矩阵,减少不必要的时间。
但是,还是时间超时了

水的逆流而上

求交集

📎 参考

  • 【题单】网格图(DFS/BFS/综合应用)
  • Important
  • 529. 扫雷游戏1391. 检查网格中是否存在有效路径
    Loading...