1. 程式人生 > 實用技巧 >柱狀圖中最大的矩形

柱狀圖中最大的矩形

給定n個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度為 1 。

求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。

function largestRectangleArea(heights) {
    let getMinHeight = (start,end) => {
        let arr = heights.slice(start,end+1)
        return Math.min(...arr)
    }
    let max = heights.length ? Math.max(...heights) : 0,i,j;
    for(i = 0;i < heights.length-1;i++){
        let item = heights[i]
        for(j = i + 1;j < heights.length;j++){
            let jItem = heights[j]
            let width = j - i + 1,height = getMinHeight(i,j);
            if(height == 0){
                if((j - i) == 1){
                    if(max < (item || jItem)){
                        max = (item || jItem)
                    }
                }else{
                    continue
                }
            }
            if(max < width * height){
                max = width * height
            }
        }
    }
    return max
}

提交未通過,測試用例資料 [0,1,2,3,...,19999]