编辑代码

var largestRectangleArea = function(heights) {
    let stack = [] //存储构成当前最大面积的柱
    if(heights.length===1) return heights[0]
    let maxArea = 0,res =0
    for(let item of heights){
        if(!stack.length) {
            stack.push(item)
            maxArea = item
            continue
        }
        let newMaxArea = (Math.min(item,...stack)*(stack.length+1))//新的短板面积
        console.log(item,newMaxArea,maxArea)
        if(newMaxArea <= item || newMaxArea < maxArea){//这个条件有问题newMaxArea < maxArea
            stack = []
            stack.push(item)
            maxArea = item
        }else{
            stack.push(item)
            maxArea = newMaxArea
        }
        res = maxArea > res? maxArea:res
        console.log(item,stack,res)
    }
    return res
};
        

largestRectangleArea([2,1,3,1,2,3,4,2,1,3,4,1,2,3,4,2,3,1,4])