题目在这:https://leetcode-cn.com/problems/container-with-most-water/

思路分析:

本题容易想到使用双指针维护水桶的左边和右边。
开始时,L指向最左端,R指向最右端。
我们将较垂直高度短的那一边往里面挪动。

为什么移动较短的一边?

(本题重点,必看!)

面积取决于短板高度和底面长度 面积 = 短板高 * 底面长

无论是移动短板或者长板,我们都只关注移动后的新短板会不会变长,所构成面积会不会变大,而每次移动的木板都只有三种情况,比原板短,比原板长,与原板相等;

如果向内移动短板,对于新的木板 1.比原板更短,则新面积更小,2.比原板更长,则新面积可能变大或不变,3.和原木板相等,则新面积变小;

如向内移动长板,对于新的木板:1.比原短板短,则新面积更小。2.与原短板相等或者比原短板长,则新面积不变或变小。所以,向内移动长板,一定不能使新面积增大。(因为短板没变,即底边变短了,高没变)

完整代码

 def maxArea(self, height: List[int]) -> int:left = 0right = len(height) - 1area = 0while left < right:cur = min(height[left], height[right]) * (right - left) # 面积 = 短板高 * 底面长area = max(area, cur)# 较短的垂直线往中间移动if height[left] < height[right]:left += 1else: # 长的往中间动right -= 1return area

力扣(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. LeetCode 11. 盛最多水的容器(双指针)

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

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

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

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

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

  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. 盛最多水的容器(rust重拳出击)

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

最新文章

  1. gabor小波matlab,用matlab实现gabor小波对图片的纹理特征提取【转】
  2. uGUI知识点剖析之RectTransform
  3. oracle 输出 三角形,10. 三角形(示例代码)
  4. Core Data(3)- 使用绑定
  5. 文本编码-Python2.x处理中文字符串
  6. MetInfo最新版代码审计漏洞合集
  7. 上传图片自动加水印html,html5上传多个文件并添加水印 实例源码
  8. 作者:连德富,男,电子科技大学讲师、教育大数据研究所副所长。
  9. oracle 审计(二)
  10. 【英语学习】【Level 07】U01 Making friends L3 Do you eat here a lot?
  11. 同步异步和阻塞非阻塞
  12. 软件_搭建rtmp视频推送环境,腾讯云,ubuntu16
  13. net core 2 读取appsettings.json
  14. php数量百分比,mysql PHP行数+百分比
  15. H5利用JS调用摄像头实现拍照效果
  16. RINEX广播星历文件读取(N文件)
  17. Gabor滤波器学习
  18. Lunix磁盘与文件系统管理
  19. 设置计算机网络密码怎么设置路由器,如何在计算机上设置路由器密码?
  20. 大学《管理学》教材笔记

热门文章

  1. 永中科技破产,盒装软件时代的尾声
  2. 想不想修真鸿蒙之礼奖励,想不想修真血浮屠收益有多少 声望掉落奖励一览
  3. 读书笔记-精准努力-应急学习的好处
  4. Sh.k6p index.php,肛挢蝌替愍莱#bgjlplp
  5. bitcode 是什么_associate什么意思
  6. CIW试题1 单选题
  7. 六、FFmpeg使用---ffmpeg依赖x264库
  8. 微服务书城(第三天)
  9. 泛微OAwebservice接口附件上传
  10. 微信小程序常用功能所需条件整理