问题描述
问题描述见这位的博客http://blog.youkuaiyun.com/jingsuwen1/article/details/51577983。
这个比较简单,直接上代码吧。
//比较函数,快排用
int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}
//条形图中的最大矩形面积
int MaxRectangle(){
int a[6] = {2, 1, 5, 6, 2, 3};
int max[6] = {0};
int maxi;
for (int i=0; i<6; i++) {
maxi = a[i];
//往左查找
for (int j=i-1; j>=0; j--) {
if (a[j] >= a[i]) {
maxi += a[i];
}else {
break;
}
}
//往右查找
for (int j=i+1; j<6; j++) {
if (a[j] >= a[i]) {
maxi += a[i];
}else {
break;
}
}
max[i] = maxi;
}
qsort(max, 6, sizeof(int), cmp);
cout<<max[5]<<endl;
}