201312-3最大的矩形
目录
题目
思路
我们可以这样求出我们的最大矩形:
对于任意一个矩形h[i]
,我们就以它作为高,求出以它为基准的最大的矩形面积。具体怎么做呢?
我们可以向左找出比它高的矩形并且是连续的(意思是中间没有一个比它小的),那这样子是不是可以形成一个扁长矩形?
同样的,向右找出比它高的矩形并且是连续,那么,以h[i]
作为高的最大矩形的面积等于多少不就可以算出来了吗?那我们依次遍历这样的矩形,最大的矩形面积自然也就可以找出来了。
如果不是很能理解的话,看看代码应该就能够懂得了。
代码
|
|
后话
刚开始的时候自己比较懒,又或者自己确实比较菜,就是感觉做不出来,然后就是不想动手写。就去CSDN
上面找了答案,然后发现它们贴的标签是单调栈
,至于什么是单调栈,现在我还没明白(因为没有去搜),所以这里先做一下标记,等我想起来了在来补充一下单调栈的东西。