盛最多水的容器

题意好绕,看半天都没懂要干什么。
我直接上个图可能就能一眼看明白了:

总之,当明白题意后,直接就能想到暴力法枚举所有可能性,不过如果再画一下图基本就能发现:两线段之间形成的区域总是会受到其中较短那条长度的限制。
我举个例子,对于所有以(1,a1)为左边构成的矩阵,最大的一个肯定在右边(n,an)开始数,第一个大于等于ai的边,我们记成aj。即以a1为左边的最大矩阵肯定是 以right边从(j,aj)~(n,an)构成矩阵中的其中一个。实际上,对于(1,a1)~(j,aj)的边,我们就没有必要去算了。然后,以(2,a2)为左边,此时注意,如果a2小于等于a1,那么不必算了。如果a2>a1,那么此时与a1同理。依次类推。。(我想到的这个思路感觉好绕- -)

官方给出的双指针法好像更清晰易懂一些,贪心思想:

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

题不错,其实还比较考验智商的,打算把他选为面试题

代码不贴了

转载于:https://www.cnblogs.com/acbingo/p/9231465.html

[leetcode] 11.盛最多水的容器相关推荐

  1. [贪心|双指针] leetcode 11 盛最多水的容器

    [贪心|双指针] leetcode 11 盛最多水的容器 1.题目 题目链接 给你 n 个非负整数 a1,a2,-,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 ...

  2. LeetCode 11. 盛最多水的容器

    11. 盛最多水的容器 思路:双指针,放弃低的那边 class Solution { public:int maxArea(vector<int>& height) {int n= ...

  3. 6. Leetcode 11. 盛最多水的容器 (数组-双向双指针)

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

  4. LeetCode 11. 盛最多水的容器(双指针)

    文章目录 1. 题目信息 2. 解题 1. 题目信息 给定 n 个非负整数 a1,a2,-,an,每个数代表坐标中的一个点 (i, ai) . 在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 ...

  5. leetcode —— 11. 盛最多水的容器

    给定 n 个非负整数 a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​,每个数代表坐标中的一个点 (i,ai)(i, a_i)(i,ai​) .在坐标内画 n 条垂 ...

  6. LeetCode #11 盛最多水的容器

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

  7. LeetCode——11. 盛最多水的容器

    题目链接:https://leetcode-cn.com/problems/container-with-most-water/ #include <bits/stdc++.h> #inc ...

  8. LeetCode 11 盛最多水的容器

    https://leetcode-cn.com/problems/container-with-most-water/ 解决方案 class Solution {public int maxArea( ...

  9. 力扣(leetcode) 11. 盛最多水的容器 (短板木桶原理详解)

    题目在这:https://leetcode-cn.com/problems/container-with-most-water/ 思路分析: 本题容易想到使用双指针维护水桶的左边和右边. 开始时,L指 ...

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

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

最新文章

  1. 【Python】用于在 Python 中处理 PDF 文件的 PyPDF2 库
  2. android res文件夹下面的 values-v11 、 values-v14
  3. smarty5变量修改器
  4. spring mvc ModelAndView向前台传值
  5. 【51单片机快速入门指南】3:中断系统
  6. 如何升级浏览器_手把手教你申请IOS14 Beta升级方法
  7. ubuntu编译mysql源码
  8. 学习sql注入:猜测数据库_学习SQL:SQL数据类型
  9. GitHub上下载源代码的方法
  10. GraPhlAn:最美进化树或层级分类树学习笔记
  11. JavaScript分割字符串
  12. 计算机网络应用层1练习题
  13. Mackdown 编辑器-马克飞象
  14. 一键修改计算机名(无需重启)
  15. 四轴码垛机器人DH模型运动学
  16. mysql insert 空字符报错
  17. 作为程序员,哪些技能是必须要掌握的?
  18. hpdl380g9没有f10_惠普Hp DL380 GEN9 UEFI模式安装win2008 r2的方法
  19. 智伴机器人wifi键在哪里_智伴机器人的操作和功能
  20. 2023的展望:不积跬步,无以至千里;不积小流,无以成江海

热门文章

  1. SCCM 2012系列2 服务器准备下
  2. Linux网络服务_dhcp服务和dhcp中继服务
  3. Android开发指南(32) —— Multimedia and Camera - Audio Capture
  4. JAVA.SQL.SQLEXCEPTION: INCORRECT STRING VALUE: '\XF0\X9F\X92\X94' FOR COLUMN 'CONTENT' AT ROW 1
  5. 一条ssh命令实现端口转发,实现跨机器直接访问
  6. 理解Java的几张图
  7. 有赞大裁员:裁员会超过1500人,加盟4年半的百度副总裁也已离职
  8. Java17,有史以来最快 JDK!
  9. 国内首家,携程试点每周两天居家办公反响热烈,76%的员工主动报名
  10. IntelliJ IDEA 2019.3 首个最新访问版本发布,新特性抢先看