funclargestRectangleArea(heights []int)int{var max intvar stack =make([]int,0)var nums =make([]int,0)
nums =append(nums,[]int{0}...)
nums =append(nums, heights...)
nums =append(nums,[]int{0}...)for i :=0; i <len(nums); i++{forlen(stack)>0&& nums[stack[len(stack)-1]]> nums[i]{
tmp := stack[len(stack)-1]
stack = stack[0:len(stack)-1]
max =Max(max, nums[tmp]*(i-stack[len(stack)-1]-1))}
stack =append(stack, i)}return max
}funcMax(a, b int)int{if a > b{return a
}else{return b
}}