力扣练习之盛最多水的容器

我爱海鲸 2023-08-03 11:20:57 力扣、高级算法

简介高级、力扣、

原题出处:https://leetcode.cn/leetbook/read/top-interview-questions-hard/xw6oqi/

解法一:

class Solution:
    def maxArea(self, height: List[int]) -> int:
        l = len(height)
        left,right = 0,l-1
        result = 0
        while left < right:
            w = right - left
            tmp_height = min(height[left],height[right])
            result = max(result,w*tmp_height)
            if height[left] > height[right]:
                right -= 1
            else:
                left += 1
        return result

思路:双指针思路,创建左右指针,分别记录水桶的两端,那么当前水桶中能够存储的水最大值就是,值小的那端乘以当前两端的距离,并将当前的最大值比较保存,然后比较两端的大小,如果左边大就将右端往左移,反之左边往右移,依次遍历,当左指针不大于右指针时,结束遍历。最后返回最大值即可。

你好:我的2025