題目:給定 n 個非負整數 a
1,a2,...,a
n,每個數代表座標中的乙個點 (i, ai
) 。畫 n 條垂直線,使得垂直線 i 的兩個端點分別為 (i, ai
) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。
思路:定義兩個指標,分別指向list的頭和尾,對應容器的左壁和右壁。隨後讓左壁和右壁不斷向中間靠攏,計算得到每次的容積值並更新容積最大的值,直到左壁》=右臂。
class solution(object):
def maxarea(self, height):
""":type height: list[int]
:rtype: int
"""max_area=0 #定義變數max_area存放容積最大值
left=0 #定義左壁的下標
right=len(height)-1 #定義右壁的下標
while(leftif(height[left]area=height[left]*(right-left) #計算此時的容器容積
left+=1
else: #當左壁的高度大於等於右壁時
area=height[right]*(right-left) #計算此時的容器容積
right-=1
max_area=max(max_area,area) #計算得到的面積值跟max_area比較
return max_area
LeetCode 盛最多水的容器
給定 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器,且 n 的值至少為 2。圖中垂直線代表輸入陣列 1,8,...
LeetCode 盛最多水的容器
給定 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別 為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器,且 n 的值至少為 2。示例 輸入 1,8,6,2,5...
LeetCode 盛最多水的容器
給定 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器,且 n 的值至少為 2。圖中垂直線代表輸入陣列 1,8,...