代码:
class Solution {
public:
int trap(vector<int>& height) {
stack<int> st;
int res=0;
for(int i=0;i<height.size();i++){
int last=0;
while(st.size()&&height[st.top()]<=height[i]){
res+=(i-st.top()-1)*(height[st.top()]-last);
last=height[st.top()];
st.pop();
}
if(st.size()) res+=(i-st.top()-1)*(height[i]-last);
st.push(i);
}
return res;
}
};