题解 | #盛水最多的容器#

盛水最多的容器

http://www.nowcoder.com/practice/3d8d6a8e516e4633a2244d2934e5aa47

优化过的双指针

class Solution:
    def maxArea(self, height: List[int]) -> int:
        if not height:
            return 0
        res = 0
        left = 0
        right = len(height) - 1
        max_height = max(height)
        while left < right:
            tmp_left = height[left]
            tmp_right = height[right]
            if tmp_left < tmp_right:
                res = max(res, tmp_left * (right - left))
                if tmp_left == max_height:
                    break
                while left < right and height[left] <= tmp_left:
                    left += 1
            else:
                res = max(res, tmp_right * (right - left))
                if tmp_right == max_height:
                    break
                while left < right and height[right] <= tmp_right:
                    right -= 1
        return res
全部评论

相关推荐

12-19 15:21
已编辑
阿里巴巴_后端
点赞 评论 收藏
分享
11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务