lc js 84

147 阅读1分钟

效率很低 但是过了。。。

/**
 * @param {number[]} heights
 * @return {number}
 */
var largestRectangleArea = function(heights) {
    function getAreaAccordingMin(index){
        let val = heights[index];
        let start = index;
        while(start >= 0 && heights[start] >= val){
            start --;
        }
        start ++;

        let end = index;
        while(end < heights.length && heights[end] >= val){
            end ++;
        }
        end --;
        return val * (end - start + 1);
    }
    let max = 0;
    for(let i = 0; i < heights.length; ++i){
        let res = getAreaAccordingMin(i);
        if(res > max){
            max = res;
        }
    }
    return max;
};