
第一步:定义两个指针分别指在列表的头尾元素下标,并定义最大面积初始化为 0;
第二步:就是目标函数值,并判断目标函数值与最大面积间的大小,若最大面积小于目标函数,则将目标函数值赋值给最大面积值;
第三步,比较 a[left] 和 a[right] 之间的大小
如果 a[left] 比较小,则left +1;
如果 a[right] 比较小,则right+1;
第四步,直到 left 大于等于 right ,停止循环。
class Solution:
def maxArea(self, height: List[int]) -> int:
max_area = 0
left = 0
right = len(height) - 1
while left < right:
area = min(height[left], height[right]) * (right - left)
if area > max_area:
max_area = area
if height[left] > height[right]:
right = right - 1
else:
left = left + 1
return max_area
本文介绍了一种解决最大盛水量问题的高效算法。通过双指针技术,从列表两端开始向中间逼近,每次更新最大面积并根据两边高度决定移动哪个指针,最终找到最大盛水量。
1717

被折叠的 条评论
为什么被折叠?



