Lintcode 裝最多水的容器

2021-07-30 15:46:29 字數 877 閱讀 5495

給定 n 個非負整數 a1, a2, ..., an, 每個數代表了座標中的乙個點(i, ai)。畫 n 條垂直線,使得 i 垂直線的兩個端點分別為(i, ai)(i, 0)。找到兩條線,使得其與 x 軸共同構成乙個容器,以容納最多水。

注意事項

容器不可傾斜。

您在真實的面試中是否遇到過這個題?

yes

樣例給出[1,3,2], 最大的儲水面積是2.

標籤 兩根指標陣列

分析:兩個指標分別從陣列兩端開始向中間遍歷,每次按照上面的公式(1)計算面積,這個面積和之前的最大面積比較,儲存下較大的那個作為新的最大面積。同時將較低的那個高度,向他的方向移動一位。,再對上面的過程迭代,直到遍歷完整個陣列,返回此時的最大面積即可。

class solution {

public:

/*** @param heights: a vector of integers

* @return: an integer

*/int maxarea(vector&heights) {

// write your code here

if(heights.empty())

return 0;

int area=0,maxa=0;

int first,end;

first=0;

end=heights.size()-1;

while(first

如有幫助請頂乙個,你們的支援是我最大的動力。

裝最多水的容器 LintCode

給定 n 個非負整數 a1,a2,an,每個數代表了座標中的乙個點 i,ai 畫 n 條垂直線,使得 i 垂直線的兩個端點分別為 i,ai 和 i,0 找到兩條線,使得其與 x 軸共同構成乙個容器,以容納最多水。注意事項 容器不可傾斜。樣例 給出 1,3,2 最大的儲水面積是2.ifndef c38...

lintcode 383 裝最多水的容器

給定 n 個非負整數 a1,a2,an,每個數代表了座標中的乙個點 i,ai 畫 n 條垂直線,使得 i 垂直線的兩個端點分別為 i,ai 和 i,0 找到兩條線,使得其與 x 軸共同構成乙個容器,以容納最多水。注意事項 容器不可傾斜。樣例給出 1,3,2 最大的儲水面積是2.標籤兩根指標 陣列 思...

盛最多水的容器

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