题目:输入N个非负整数,分别代表宽度为1,高度为整数值得柱子,从柱状图里找出最大四边形的面积。要求时间复杂度为O(n),空间复杂度为O(n)
举例:输入数组{1,2,3,1,2,3,1,1,1,1},柱状图如图所示,最大四边形的面积为10
对于图中的任意一条柱形,若是求以该柱形的高度为高的最大四边形的面积,需要知道该四边形的边界,该最大四边形的左边界是左方向第一个小于该柱形高度的柱子的右边的柱子,右边界为右方向第一个小于该柱形高度的柱子。
由于要求时间复杂度为O(n),因此数组肯定只能遍历一次。
- 遍历到第一根柱子,高度为1,,左边界是其本身,次时还未确定其右边界,因此,先不计算以该柱子为高的最大四边形的面积。
- 遍历第二根柱子,高度为2,左边界是其本身,次时还未确定其右边界,因此,先不计算以该柱子为高的最