1. 程式人生 > >#CCF準備一年日常刷題#201312-3 最大的矩形

#CCF準備一年日常刷題#201312-3 最大的矩形

來吧,上第三題,希望幾天下午能肝明白,打算肝完CCF就去肝ACM捂臉……

問題描述   在橫軸上放了n個相鄰的矩形,每個矩形的寬度是1,而第i(1 ≤ i ≤ n)個矩形的高度是hi。這n個矩形構成了一個直方圖。例如,下圖中六個矩形的高度就分別是3, 1, 6, 5, 2, 3。

  請找出能放在給定直方圖裡面積最大的矩形,它的邊要與座標軸平行。對於上面給出的例子,最大矩形如下圖所示的陰影部分,面積是10。
輸入格式   第一行包含一個整數n,即矩形的數量(1 ≤ n ≤ 1000)。
  第二行包含n 個整數h1, h2, … , hn,相鄰的數之間由空格分隔。(1 ≤ hi ≤ 10000)。hi
是第i個矩形的高度。
輸出格式   輸出一行,包含一個整數,即給定直方圖內的最大矩形的面積。 樣例輸入 6
3 1 6 5 2 3
樣例輸出 10 我的媽呀,果然和一二題不是一個等級的,先讓我反應一會兒…… 還是看了大佬的答案嚶嚶嚶(捂臉) 方法一:暴力列舉 我是個智障,矩形!!!什麼叫矩形!!!不要管長和寬啊,都是邊啊…… ……………………………………………………………………我是去寫程式的分割線……………………………………………………………………… 暴力,沒什麼知識點可以get到的,再去看第二種方法,總有種預感,第二種很難。地址:點選開啟連結 先是stack,甩地址:點選開啟連結
 (但其實我覺得我的水平還沒有到可以看原始碼的地步……)
不行看不懂,去吃個飯回來再看………… 看懂了,s.top()彈出去了,top就不是它了!!!去寫程式碼了! 好了,程式碼寫完了,要比較的int等,一定要賦值啊,否則系統會預設給它一個奇怪的值。