給定 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...