leetcode-42. 接雨水

https://leetcode-cn.com/problems/trapping-rain-water/

單調棧應用,詳細講解 點我

class Solution {
public:
    int trap(vector<int>& height) {
        int sum = 0,cur = 0,n = height.size();
        stack<int> s;
        while(cur < n){
            while(!s.empty() && height[cur] > height[s.top()]){
                int t = s.top();
                s.pop();
                if(s.empty()) break;
                sum += (cur - s.top() - 1) * (min(height[s.top()],height[cur]) - height[t]);
            }
            s.push(cur++);
        }
        return sum;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章