- 双指针滑动窗口确定矩形长
- 以当前高程为基准左右边界水平扩展
- 遍历小于基准停止扩展,计算矩形图面积,取时大值
func largestRectangleArea( height []int ) int {
var max int
for i:=0;i<len(height);i++{
if height[i] !=0 {
left,right := i,i
for right < len(height)-1 && height[right+1] >= height[i]{
right++
}
for left > 0 && height[left-1] >= height[i] {
left--
}
if cur := height[i] *(right - left + 1);cur > max {
max = cur
}
}
}
return max
}与栈无太大关系,被标签误导了,读懂题意很重要

京公网安备 11010502036488号