LeetCode:单调栈 42.接雨水classSolution{public:inttrap(vectorintheight){intsum0;for(inti0;iheight.size();i){//第一个柱子和最后一个柱子不接雨水if(i0||iheight.size()-1)continue;intleft_hheight[i];//记录左边柱子的最高高度intright_hheight[i];//记录右边柱子的最高高度for(intli-1;l0;l--){if(height[l]left_h)left_hheight[l];}for(intri1;rheight.size();r){if(height[r]right_h)right_hheight[r];}// 【核心】每列的水量是左右最高的柱子高度最小值减本列柱高度inthmin(left_h,right_h)-height[i];if(h0)sumh;}returnsum;}};