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
数组恢复为原来的值。为什么呢?在本题中,我们需要从每一个网格点尝试一下,这一次访问过了,下一次还是需要访问该节点,才能得到正确的解。也这因为如此,我们这个算法的复杂度时间十分高,为 ,会导致超时。
添加记忆化,参考 追风少年 的答案,添加一个记忆矩阵,减少不必要的时间。
但是,还是时间超时了
水的逆流而上
求交集