201312 3 最大的矩形

2021-08-25 11:36:35 字數 541 閱讀 5267

考察最大的矩形,其特點是至少有一根柱子達到了頂點然後雙指標法即可

#include

#include

#include

using

namespace

std;

int main()

//考察最大的矩形,其特點是至少有一根柱子達到了頂點

//所以,採用的方式是列舉中間柱子,兩邊擴充套件求面積,過程中標記最大值

int lo,hi;//左右指標,i表示最高的柱子,(lo,hi)表示是矩形的邊界

for(int i=0;iwhile(lo>=0&&vec[lo]>=vec[i])lo--;

while(hi=vec[i])hi++;

//printf("%d %d %d\n",i,lo,hi);

maxn=max(maxn,(hi-lo-1)*vec[i]);

}printf("%d\n",maxn);

return

0;}

最大的矩形 201312 3

問題描述 在橫軸上放了n個相鄰的矩形,每個矩形的寬度是1,而第i 1 i n 個矩形的高度是h i。這n個矩形構成了乙個直方圖。例如,下圖中六個矩形的高度就分別是3,1,6,5,2,3。請找出能放在給定直方圖裡面積最大的矩形,它的邊要與座標軸平行。對於上面給出的例子,最大矩形如下圖所示的陰影部分,面...

201312 3 最大的矩形

試題編號 201312 3 試題名稱 最大的矩形 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 在橫軸上放了n個相鄰的矩形,每個矩形的寬度是1,而第i 1 i n 個矩形的高度是h i。這n個矩形構成了乙個直方圖。例如,下圖中六個矩形的高度就分別是3,1,6,5,2,3。請找出...

201312 3 最大的矩形

問題描述 在橫軸上放了n個相鄰的矩形,每個矩形的寬度是1,而第i 1 i n 個矩形的高度是h i。這n個矩形構成了乙個直方圖。例如,下圖中六個矩形的高度就分別是3,1,6,5,2,3。請找出能放在給定直方圖裡面積最大的矩形,它的邊要與座標軸平行。對於上面給出的例子,最大矩形如下圖所示的陰影部分,面...