1 题目

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

2 解法

2.1 思路

这道题用双指针的解法可以让时间复杂度o(N).

至于为什么可以用双指针的方法,思路如下:

第一步, 让左指针在最左边, 右指针在最右边, 假设左边界的值为x, 右边界的值为y, 左右边界的距离为t, 那么此时能容纳的水为V = min(x, y) * t;

如果想要找到比V更大的左右边界, 我们需要看x和y的大小, 如果x<y, 那么左边界和任意一个另外一个右边界组合都不会比现在的V大, 所以它就不可能是今后的目标的.所以左边界舍弃, 也就是左边界往右移一, 把现在左右边界看作一个新的容器, 重复第一步(右边界同理). 所以这就转化为了双指针问题.

2.2 代码

    int maxArea(vector<int>& height) {int maxCapacity = 0;int left = 0;int right = height.size() - 1;while (left < right) {int tCapacity = (right - left) * min(height[left], height[right]);if (tCapacity > maxCapacity) {maxCapacity = tCapacity;}if (height[left] < height[right]) {left ++;} else {right --;}}return maxCapacity;}

leetcode 11相关推荐

  1. LeetCode 11. Container With Most Water--Java 解法--困雨水简单版

    LeetCode 11. Container With Most Water–Java 解法 此文首发于我的个人博客:LeetCode 11. Container With Most Water–Ja ...

  2. LeetCode 11 Container With Most Water

    问题:给出一个数组nums,要求选择2个,使得容器中包含的水最多. 思路:假设选取x,y,其中x<y,则包含的水为min(x,y)*(index(y) - index(x)).此时应该选择在最小 ...

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

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

  4. 【贪心+双指针】LeetCode 11. Container With Most Water

    LeetCode 11. Container With Most Water Solution1: 参考网址:http://www.cnblogs.com/grandyang/p/4455109.ht ...

  5. leetcode 11:旋转数组的最小数字

    leetcode 11:旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按 ...

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

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

  7. LeetCode 11盛水最多的容器12整数转罗马数字

    目录 盛水最多的容器 题目描述 分析 整数转罗马数字 题目描述: 分析 结语 盛水最多的容器 公众号:bigsai,回复进群加入打卡,回复bigsai获取3GB的pdf资源.点赞再看,养成习惯! 题目 ...

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

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

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

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

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

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

最新文章

  1. 【课堂笔记系列】二进制
  2. springboot中如何获取yml配置文件中的配置信息
  3. windows中如何设置开机自启tomcat,nginx,jdk等应用服务的解决办法
  4. python链接hbase模块_HBase实战(1):使用Python连接Hbase数据库
  5. MySQL 的覆盖索引与回表
  6. ios学习Day3xiawu
  7. html中写随机数,为HTML生成一个随机数
  8. [转贴]犯贱报(一张浓缩大学生活的..)
  9. Linux备份策略研究
  10. 面试题 04.04. 检查平衡性
  11. Linux升级php
  12. SpringMvc-@ExceptionHandler
  13. 枚举很好用啊,为啥阿里不建议返回值用枚举?看看作者孤尽的回答
  14. Symbian S60 自动通话录音
  15. Pensieve Multi_agent代码详解以及A3C强化学习代码详解
  16. 硬件工程师基本元器件类复习——三极管
  17. MySQL JSON_EXTRACT()、JSON_UNQUOTE() 函数获取JSON串的值
  18. vue项目使用i18n插件实现多语言切换功能
  19. 6-系统管理员密码破解
  20. Captura – 带键盘按键录制的录屏工具,支持直播[Windows]

热门文章

  1. 小牛地图矢量抓取工具_SEO优化网站sitemap需要注意哪些要点才能很好的被百度蜘蛛抓取...
  2. 《Python快速入门》6大数据类型详解
  3. 复制带随机节点的链表
  4. Python 使用 Scrapy 发送 post 请求的坑
  5. Java加密与解密的艺术~Provider
  6. Redis系列四、redis的五种数据结构和相关指令之List
  7. 南开大学计算机原理在线作业,南开大学20秋《计算机原理》在线作业-1(参考答案)...
  8. PineApple_Ninja.js
  9. 中山大学计算机是A类学科吗,中山大学a类学科有哪些?附中大a类学科名单
  10. 去除ring3层的Debug标志