本文包含如下两个题目:
42. Trapping Rain Water
407. Trapping Rain Water II
42. Trapping Rain Water
解题思路
从两头开始向中间搜索,维持一个secondHeight的变量,记录已遍历的节点中第二高的点。遍历到的节点高度小于secondHeight的话,可以装水,如果大于secondHeight的话,则此时需要更新secondHeight。
代码
1 | class Solution |
407. Trapping Rain Water II
解题思路
首先将边缘的高度全部统计,使用堆排序进行排序,建立最初的水池边框。然后取边框中高度最低的作为参照,取其上下左右四个相邻块的高度,如果高度小于参照高度,则可以储水,如果大于等于参照高度,则无法储水,就应该划归到边框中,置入堆中进行排序,然后循环如上操作。
代码
1 | class Solution |