Leetcode42 接雨水(dp,单调栈,双指针)
本题可以有三种解法:
动态规划:对每一格注水,统计每个位置高度的左边最大值和右边最大值
单调栈:按照层的方式注水,使用递减单调栈寻找注水区间
双指针:两个指针从左边向中间移动,一次遍对每一格子注水
动态规划:使用两个数组,分别遍历并记录每一位置左边高度的最大值,右边高度的最大值。
最后每个位置内的雨水大小 min(leftmax[i],rightmax[i]) - height[i],求和得到输出。
单调栈:栈自底向上坐标对应的高度,逐渐减小。当height[i] < stack.top()时,.
原创
2021-12-21 16:23:55 ·
359 阅读 ·
0 评论