LeetCode 407 3d 接雨水,久闻大名。很有意思,想清楚思路还挺简单的:木桶的边由最短板而不是最长板决定。类似题有LeetCode 42接雨水(双向双指针解法)

1. 边界必不能接水,所以先把边界推进priority_queue 最小堆进去。(用height[i][j] == -1 记录这个边经过,防止重复计算)
2. 木桶长度由最短边记录,但如果这个边小于现在的最短边,它的height 要记录成max(minHeight, heightMax[i][j]) 因为此时它相当于注水了。由于木桶最外边理论 它不可能比minHeight 还低。同时 更新sum = max(minHeight - heightMax[i][j], 0) 超过它就是0。轮回直到pq 为空。
展开
评论