本文主要是介绍Golang | Leetcode Golang题解之第84题柱状图中最大的矩形,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
题解:
func largestRectangleArea(heights []int) int {n := len(heights)left, right := make([]int, n), make([]int, n)for i := 0; i < n; i++ {right[i] = n}mono_stack := []int{}for i := 0; i < n; i++ {for len(mono_stack) > 0 && heights[mono_stack[len(mono_stack)-1]] >= heights[i] {right[mono_stack[len(mono_stack)-1]] = imono_stack = mono_stack[:len(mono_stack)-1]}if len(mono_stack) == 0 {left[i] = -1} else {left[i] = mono_stack[len(mono_stack)-1]}mono_stack = append(mono_stack, i)}ans := 0for i := 0; i < n; i++ {ans = max(ans, (right[i] - left[i] - 1) * heights[i])}return ans
}func max(x, y int) int {if x > y {return x}return y
}
这篇关于Golang | Leetcode Golang题解之第84题柱状图中最大的矩形的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!