本文主要是介绍柱形图中求最大四边形面积,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:输入N个非负整数,分别代表宽度为1,高度为整数值得柱子,从柱状图里找出最大四边形的面积。要求时间复杂度为O(n),空间复杂度为O(n)
举例:输入数组{1,2,3,1,2,3,1,1,1,1},柱状图如图所示,最大四边形的面积为10
对于图中的任意一条柱形,若是求以该柱形的高度为高的最大四边形的面积,需要知道该四边形的边界,该最大四边形的左边界是左方向第一个小于该柱形高度的柱子的右边的柱子,右边界为右方向第一个小于该柱形高度的柱子。
由于要求时间复杂度为O(n),因此数组肯定只能遍历一次。
- 遍历到第一根柱子,高度为1,,左边界是其本身,次时还未确定其右边界,因此,先不计算以该柱子为高的最大四边形的面积。
- 遍历第二根柱子,高度为2,左边界是其本身,次时还未确定其右边界,因此,先不计算以该柱子为高的最
这篇关于柱形图中求最大四边形面积的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!