1. 程式人生 > >Poj 2559 Largest Rectangle in a Histogram(柱形統計圖中的最大矩形面積)

Poj 2559 Largest Rectangle in a Histogram(柱形統計圖中的最大矩形面積)



給出一個柱形統計圖中,求其中的最大矩形面積

做完這道題,搜了一下題解大部分基本都是單調棧......然而做之前並不知道這是什麼,其實用遞推也可以做這道題,理解起來比較容易。

用兩個陣列l,r記錄當前座標可以向左和向右延伸的最遠位置的座標,然後就是遞推了。

初始時將l[i],r[i]的值置為i,即自己的座標。這裡拿l[i]舉例:

從左向右掃描統計圖,計算當前位置的l[i]時,如果h[i] > h[ l[i] - 1 ]的話,那麼l[i] = l[ l[i]-1  ]。

然後對於每個位置,ans = max(h[i]*(r[i] - l[i] + 1))