1102 面积最大的矩形
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注
有一个正整数的数组,化为直方图,求此直方图包含的最大矩形面积。例如 2,1,5,6,2,3,对应的直方图如下:
面积最大的矩形为5,6组成的宽度为2的矩形,面积为10。
Input
第1行:1个数N,表示数组的长度(0 <= N <= 50000)
第2 - N + 1行:数组元素A[i]。(1 <= A[i] <= 10^9)
Output
输出最大的矩形面积
Input示例
6
2
1
5
6
2
3
Output示例
10
思路:单调栈的应用。从左到右维护一个递增的栈,可以求出每个矩形向左覆盖得距离,同理,从右到左维护一个递增的栈,可以求出每个矩形向右覆盖得距离,最后通过每个矩形的左右覆盖距离更新最大值。
#include <bits/stdc++.h>
//#define FIN freopen("input.txt","r",stdin);<