LeetCode如何解决盛水最多的容器问题

发布时间:2021-12-15 10:45:41 作者:小新
来源:亿速云 阅读:139

小编给大家分享一下LeetCode如何解决盛水最多的容器问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

1

 题目描述

给定一个有 n 个非负整数的数组[a1,a2,...,an],其中每个数代表坐标中的一个点 (i, ai) ,分别与x轴做垂线,找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水,输出面积。如下图所示,给定一个数组[3,9,3,4,7,2,12,6],其中两条绿色线与x轴构成的容器可容纳最多水,因此输出45。

LeetCode如何解决盛水最多的容器问题

2

 题解

思路:双指针
本题的  难点  是想到双指针和想到如何移动指针。
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如何解决盛水最多的容器问题”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. leetcode如何解决翻转图像问题
  2. leetcode怎么解决种花问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

leetcode

上一篇:Kafka2.6.0的性能提升示例分析

下一篇:Kafka数据如何同步至MaxCompute

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》