盛最多水的容器

2021-08-21 16:56:27 字數 794 閱讀 7038

題目描述:

給定 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
詳細解題:

和原題目相比我們可以設計更高階一些,就是輸入多少個數由我們自己決定

所以在主函式中設定n:

int main()

void set(int xx,int yy)

int getx()

int gety()

protected:

int x,y;

};再用乙個area類進行不同面積的比較,其中point類的指標作為私有成員,並且在其中運用了

動態函式。

class area

}void getarea()

else

m=fabs(p[i].getx()-p[j].getx())*n;

if(m>a)}}

cout<

int main()

注意:因為point類的指標是area類的私有成員,所以在point類中要有預設建構函式

盛最多水的容器

給定 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 畫 n 條垂直線,使得垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。注意 你不能傾斜容器,n 至少是2。乍一看很簡單,巢狀迴圈遍歷就完事了 int m...

盛最多水的容器

給定 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器,且 n 的值至少為 2。圖中垂直線代表輸入陣列 1,8,...

盛最多水的容器

給定 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器,且 n 的值至少為 2。圖中垂直線代表輸入陣列 1,8,...