日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

[LeetCode]题解(python):011-Container With Most Water

發布時間:2025/7/14 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [LeetCode]题解(python):011-Container With Most Water 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目來源:

https://leetcode.com/problems/container-with-most-water/


?

題意分析:

? ? ? 給出一個n長度的非0數組,a1,a2,……,an,ai代表在坐標i上的高度為ai。以以ai,aj為高,i到j為底,可以構造出一個容器。那么求出這些容器中可以裝的水的最大容積(容器不能傾斜)。例如數組[2,1],一共可以構造1個容器,這個容器的四個端點坐標是(0,0),(0,2),(1,1),(1,1),那么他可以裝的最大的水容積是(1-0)*1 = 1.


?

題目思路:

? ?? 我們不難發現,水容積的大小是由短高度決定的。暴力的方法就是把所有的容器找出來,算出他們的水容積,一一比較,然后得到最大值,這種方法的時間復雜度是(O(n^2))。很明顯會TLE。

? ? ? ?我們認真研究一下尋找過程,我們從第一個高度為起始容器壁,那么我們直接以最后一個高度為終止壁,如果a1 <= an,那么以a1為起始的容器最大是a1 * (n - 1),以a1為容器壁的最大容器計算出來的。那么以a1為壁的所有情況不需要再考慮,接著考慮a2的;同理,如果a1?> an,an不再考慮,考慮an-1這有點類似"夾逼定理"。比較ai和aj(i<j)如果ai <= aj,i++;否者j ++直到i == j。這個算法的時間復雜度是(O(n))。


?

代碼(python):

?

1 class Solution(object): 2 def maxArea(self, height): 3 """ 4 :type height: List[int] 5 :rtype: int 6 """ 7 size = len(height) # the size of height 8 maxm = 0 # record the most water 9 j = 0 10 k = size - 1 11 while j < k: 12 if height[j] <= height[k]: 13 maxm = max(maxm,height[j] * (k - j)) 14 j += 1 15 else: 16 maxm = max(maxm,height[k] * (k - j)) 17 k -= 1 18 return maxm View Code

?

?

?


轉載請注明出處:http://www.cnblogs.com/chruny/p/4817787.html

?

轉載于:https://www.cnblogs.com/chruny/p/4817787.html

總結

以上是生活随笔為你收集整理的[LeetCode]题解(python):011-Container With Most Water的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。