题目描述
有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。
有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。
给定一个直方图A及它的总宽度n,请返回最大矩形面积。保证直方图宽度小于等于500。保证结果在int范围内。
IDEA
以当前考查的元素为基准,计算向右的最大值,再计算向左的最大值,将二者相加。
CODE
class MaxInnerRec {
public:
int countArea(vector<int> A, int n) {
// write code here
int max=0,sum;
for(int i=0;i<n;i++){
sum=A[i];
for(int j=i+1;j<n&&A[i]<=A[j];j++){
sum+=A[i];
}
for(int j=i-1;j>=0&&A[i]<=A[j];j--){
sum+=A[i];
}
max=max>sum?max:sum;
}
return max;
}
};