給你 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
然後開始遍歷縱座標的值,大概長度是一半的橫座標,時間複雜度為o(n)sns=
min(height[left]
,height[right])*
(right-left)
**如下:
這個也可以理解為採用雙指標的,left從左向右,right從右向左,最後找到面積最大的值。class
solution
:def
maxarea
(self, height: list[
int])-
>
int:
ifnot height:
return
none
size=
0 left=
0 right=
len(height)-1
while leftsns=
min(height[left]
,height[right])*
(right-left)
max_s=
max(sns,size)
size=max_s
if height[left]
: left+=
1else
: right-=
1return max_s
資料結構與演算法分析 leetcode筆記
深度學習知識及資源分享,學習交流,共同進步 leetcode 820 1 題目 給定乙個單詞列表,我們將這個列表編碼成乙個索引字串 s 與乙個索引列表 a。例如,如果這個列表是 time me bell 我們就可以將其表示為 s time bell 和 indexes 0,2,5 對於每乙個索引,我...
資料結構與演算法 演算法 演算法和資料結構
資料結構與演算法 演算法 好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您一開始或至少在我的情況下,並且我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟...
資料結構與演算法 leetcode155最小棧
設計乙個支援 push pop top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 輸入 minstack push push push getmin pop top getmin...