leetcode84 histogram

O (n ^ 2) time application heights [r] <= heights [r + 1] pruning;

class Solution {
public:
    int largestRectangleArea(vector<int>& heights) {
        int n=heights.size();
        int res=0;

        for(int r=0;r<n;r++){
            if(r<n-1 && heights[r]<=heights[r+1]) continue;
            int h=heights[r];
            for(int l=r;l>=0;l--){
                if(heights[l]<h) h=heights[l];
                int cur_s=(r-l+1)*h;
                if(res<cur_s) res=cur_s;
            }
        }
        return res;
    }
};

Guess you like

Origin www.cnblogs.com/joelwang/p/12028266.html