一、盛最多水的容器
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height) 。
找出此中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最洪流量。
阐明:你不能倾斜容器。
示例 1:
- <strong>输入:</strong>[1,8,6,2,5,4,8,3,7]
- <strong>输出:</strong>49
- <strong>解释:</strong>图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。
复制代码 示例 2:
- <strong>输入:</strong>height = [1,1]
- <strong>输出:</strong>1
复制代码 经典双指针题目
- class Solution(object):
- def maxArea(self,height):
- left, right = 0, len(height) - 1 # 初始化双指针
- max_area = 0 # 最大水量
- while left < right:
- # 计算当前容器的水量
- area = (right - left) * min(height[left], height[right])
- # 更新最大水量
- max_area = max(max_area, area)
- # 移动较短的垂线的指针
- if height[left] < height[right]:
- left += 1
- else:
- right -= 1
- return
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |