給定 n 個非負整數 a1,a2,…,an,每個數代表座標中的乙個點 (i, ai) 。在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。
說明:你不能傾斜容器,且 n 的值至少為 2。
圖中垂直線代表輸入陣列 [1,8,6,2,5,4,8,3,7]。在此情況下,容器能夠容納水(表示為藍色部分)的最大值為 49。
解題思路:
此題因為有1條邊是不確定的,所以必須每次都比較,並且全部清空都要遍歷。
可以取1條邊最長的時候開始算,可以減少賦值的次數。
#include
#include
#define max(a,b) (a > b ? a : b)
#define min(a,b) (a > b ? b : a)
intmain
(int argc,
char
**ar**)
;unsigned
short wmaxarea =0;
for(
char index=
0; index
++index)
}printf
("%d\r\n"
, wmaxarea)
;return0;
}
最大面積問題 LargestReactangle
描述 在下列非負陣列中找出最大面積 heigh 0,2,1,3,4,3,2,0 若干非負陣列組成面積不同的矩形,求上述中的最大面積。在圖中畫出了下標 3 5 高度為3,面積為9的矩形和下標為 1 6 高度為1面積為6的矩形。思路 暴力遍歷 1 從下標i開始,對於每乙個高度heigh i h,向左遍歷...
10 18 最大面積 2432
學過初三數學或圓的相關知識的人都會求陰影部分面積。垂徑定理和勾股定理 s陰 a r2 1 2 a 2 b r 2 1 2 b 2 a b 然後就可以列舉a,b找最大值 a,b 2r var r,a,b,i,j longint c,max,b1,a1 double begin readln r for...
島嶼的最大面積
給定乙個包含了一些 0 和 1的非空二維陣列 grid 乙個 島嶼 是由四個方向 水平或垂直 的 1 代表土地 構成的組合。你可以假設二維矩陣的四個邊緣都被水包圍著。找到給定的二維陣列中最大的島嶼面積。如果沒有島嶼,則返回面積為0。示例 1 0,0,1,0,0,0,0,1,0,0,0,0,0 0,0...