本文转载自【微信公众号:机器学习算法与Python精研,ID:AITop100】经微信公众号授权转载,如需转载与原文作者联系

题目:

给定 个非负整数 1,2,...,n,每个数代表坐标中的一个点 (, ) 。画 条垂直线,使得垂直线 的两个端点分别为 (, ) 和 (, 0)。找出其中的两条线,使得它们与 轴共同构成的容器可以容纳最多的水。

注意:你不能倾斜容器, 至少是2。

思路1:

此题需要现象空间,

从最长的长度开始(两端),取矮的为高,左边矮则向右移动,若右边矮,则向左边移动,因为只有移动矮的那一方才有可能获得更高的。

这种方法如何工作?

最初我们考虑由最外围线段构成的区域。现在,为了使面积最大化,我们需要考虑更长的线段之间的区域。如果我们试图将指向较长线段的指针向内移动,我们的面积不会获得任何增加,因为它将受限于较短的线段。但是,在同样的条件下,移动较短的线的指针尽管会造成宽度的减小,但却可能有助于面积的增大。因为通过移动较短线段的指针会得到相对较长的线段,这可以克服由宽度减小而引起的面积减小。

参考代码1:

classSolution:defmaxArea(self, height):""" :type height: List[int] :rtype: int """ ans = left = right = len(height) - 1while left < right: ans = max(ans, (right - left) * min(height[left], height[right]))if height[left] <= height[right]: left += 1else: right -= 1return ans

提交结果:

python容器装水_Python版LeetCode11. 盛最多水的容器相关推荐

  1. leetcode11盛最多水的容器

    题目描述:给你 n 个非负整数 a1,a2,-,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) .找出其中的 ...

  2. LeetCode11.盛最多水的容器

    题目描述: 给定 n 个非负整数 a1,a2,-,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找出其中的 ...

  3. leecode-11盛最多水的容器C版-双指针的使用

    1. 盛最多水的容器 描述:给你 n 个非负整数 a1,a2,-,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, ...

  4. 算法leetcode|11. 盛最多水的容器(rust重拳出击)

    文章目录 11. 盛最多水的容器: 样例 1: 样例 2: 提示: 原题传送门: 分析 题解 rust go c++ java typescript python 11. 盛最多水的容器: 给定一个长 ...

  5. 漫画:腾讯面试题(盛最多水的容器)

    来自:小浩算法 01 PART 盛最多水的容器 这道题目会了的朋友可能觉得很简单,但是我觉得这题实在很经典,所以还是得拿出来讲讲.还有一个进阶版本"接雨水",将在后面为大家讲解. ...

  6. leetcode最小面积_每日一道 LeetCode (51):盛最多水的容器

    ❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...

  7. 【LeetCode】1. 盛最多水的容器:C#三种解法

    题目:https://leetcode-cn.com/problems/container-with-most-water/ 盛最多水的容器 难度:中等 给你 n 个非负整数 a1,a2,...,an ...

  8. 11. 盛最多水的容器 golang

    11. 盛最多水的容器 (一道比较特殊的题) 之所以说特殊是因为这个题用动态规划反而比暴力破解法还复杂. 这种容器的题,就是前后指针方向.尽量别考虑别的思路. 11. 盛最多水的容器 给你 n 个非负 ...

  9. [Leedcode][JAVA][第11题][盛最多水的容器][双指针][贪心]

    [问题描述]11.盛最多水的容器 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 ...

最新文章

  1. 【VS实践】代码调试与错误处理
  2. python对数运算符号_科学网—Python中算数运算符之注意及np.logspace - 张伟的博文...
  3. Linux - CentOS 6.3 (x86_64)安装过程详细图解
  4. 线上分享 | 价值与风险,像投资者一样做产品决策
  5. 【转】SMIL基础教程(1)
  6. 设置tableView的分割线从最左端开始
  7. 查询空值中的注意事项
  8. C语言 删除文件 M,最全的C盘可删除文件清单
  9. 面试题 17.14. 最小K个数
  10. H5源码口红机在线游戏无需公众号
  11. python怎么写出正弦图_如何使用python在图像上生成随机正弦条纹?
  12. 堪比科幻大片!优酷特效广告、互动视频技术大揭秘
  13. linux环境下redis安装
  14. Tomcat架构探究
  15. rocketmq双主双从----四台服务器
  16. 算法是如何体现价值的
  17. js/vue:video 视频播放器
  18. C语言读取wav文件
  19. 主流智能手机屏幕材质介绍 及 LCD闪屏现象分析
  20. 女人为什么喜欢抱着男人睡觉,一定…

热门文章

  1. 1加6投屏_6月的早餐,1杯牛奶加燕麦,营养健康又美味,饱腹感很强
  2. 动态规划算法分析与探究
  3. oracle 中表变量的用法,oracle 表类型变量的使用
  4. uc手机浏览器 手机模拟_网页为何总报浏览器漏洞?起底某些手机浏览器恶意推广行为...
  5. linux执行使分区生效的命令,Linux硬盘分区生效命令partprobe
  6. fat32转ntfs工具无损数据安全转换_干货真香! 无损制作UD三分区教程,新手小白的福利来了...
  7. Python把list变为str
  8. 加密原理公钥私钥CA
  9. 关于机器学习的最佳科普文章:《从机器学习谈起》
  10. 实验吧-杂项-WTF?(python 01代码转图片)