42. Trapping Rain Water
对于这题我只能说,好好看好好学。
初看题目也有想到用堆栈,但对于写法却一头雾水。
class Solution {
public:
int trap(vector<int>& height) {
stack<int> hIdx;
int i = 0, h = 0, res = 0;
while (i<height.size()){
if (hIdx.empty() || height[i]<=height[hIdx.top()]) {
hIdx.push(i++);
} else {
h = height[hIdx.top()];
hIdx.pop();
if(hIdx.empty()) continue;
res += (min(height[hIdx.top()],height[i])-h) * (i-hIdx.top()-1);
}
}
return res;
}
};

本文详细解析了42.接雨水问题的解决方案,通过使用堆栈来实现高效的水量计算。提供了一种清晰的算法思路及代码实现,帮助读者理解如何通过比较高度来确定能接住多少雨水。
302

被折叠的 条评论
为什么被折叠?



