柱状图中最大的矩形
##整体代码:
#include<stdio.h>
#define maxsize 100
//比大小
int max(int a, int b)
{
if (a > b)
return a;
else
return b;
}
int Largest_Rectangle(int Histogram[],int n)//n :len
{
int i=0,wide=0,area=0;int curHight = 0;
for (i = 0;i < n;i++)
{
curHight = Histogram[i];
int left = i - 1;
while (left >= 0 && Histogram[left] >= curHight)
left--;
int right = i + 1;
while (right < n && Histogram[right] >= curHight)
right++;
wide = right - left-1;
area = max(area, wide*curHight);
}
return area;
}
int main()
{int i,n = 0;
printf("请输入直方图的条数:n\n");
scanf("%d",&n);
int Histogram[maxsize] = { 0 };
printf("请输入直方图的条型的高度:hight\n");
for (i = 0;i < n;i++)
{
scanf("%d", &Histogram[i]);
}
int area=Largest_Rectangle(Histogram,n);
printf("area:%d\n",area);
return 0;
}