小编给大家分享一下LeetCode如何解决盛水最多的容器问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
给定一个有 n 个非负整数的数组[a1,a2,...,an],其中每个数代表坐标中的一个点 (i, ai) ,分别与x轴做垂线,找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水,输出面积。如下图所示,给定一个数组[3,9,3,4,7,2,12,6],其中两条绿色线与x轴构成的容器可容纳最多水,因此输出45。

class Solution: def maxArea(self, height: List[int]) -> int: i = 0 j = len(height)-1 area = min(height[i],height[j])*j while i<j: if height[i]>=height[j]: j -=1 else: i += 1 if min(height[i],height[j])*(j-i)>area: area = min(height[i],height[j])*(j-i) return area
看完了这篇文章,相信你对“LeetCode如何解决盛水最多的容器问题”有了一定的了解,如果想了解更多相关知识,欢迎关注天达云行业资讯频道,感谢各位的阅读!