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){
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])