- 双指针滑动窗口确定矩形长
- 以当前高程为基准左右边界水平扩展
- 遍历小于基准停止扩展,计算矩形图面积,取时大值
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 }
与栈无太大关系,被标签误导了,读懂题意很重要