今日刷题量:2
当前刷题总量:173
Easy: 63
Mid: 98
Hard: 12
Day49
解题思想
42. 接雨水 核心思想:每一格水量 = min(左边最高, 右边最高) - 当前高度
- 栈:单调递减
- 每次 pop 出的是:“凹槽底部”
- 关键计算公式
- int h = min(height[i], height[st.top()]) - height[mid];
- int w = i - st.top() - 1;
- res += h * w;
- 本质:算“凹槽”能装多少水
84. 柱状图中最大的矩形 核心思想:以某一根柱子为“最低高度”,向左右扩展
- 单调递增栈
- 当前高度 < 栈顶 → 栈顶结算面积
- 结算公式
- int h = heights[mid];
- int w = st.empty() ? i : i - st.top() - 1;
- area = h * w;
- 技巧:在末尾补一个 0,强制清栈
练习题目
42. 接雨水(hard):https://leetcode.cn/problems/trapping-rain-water/
84.柱状图中最大的矩形(hard):https://leetcode.cn/problems/largest-rectangle-in-histogram/