LeetCode.M11

题目:

题目大意:

​ 如图所示。

数据范围:

如图所示

思路:

​ 采用双指针,所容纳的水为min(h[l], h[r]) * (r - l) ,初始时l = 0,r = len - 1,接下来选择该移动哪边的指针。无论l或r向中间收缩一格,都会导致水槽底边宽度(r - l)变短:

  • 若向内移动短板 ,水槽的短板 min(h[i],h[j]) 可能变大,因此下个水槽的面积可能增大 。
  • 若向内移动长板 ,水槽的短板 min(h[i],h[j]) 不变或变小,因此下个水槽的面积一定变小 。

因此我们每次只需要向内移动短板的指针即可。

代码:

class Solution {public int maxArea(int[] height) {int l = 0, r = height.length - 1, res = 0;while (l < r){int hl = height[l], hr = height[r], t = r - l;if (hl < hr){res = Math.max(res, t * hl);l ++ ;}else {res = Math.max(res, t * hr);r -- ;}}return res;}
}public class Main {public static void main(String[] args) {Solution solution = new Solution();int[] nums = new int[]{1,8,6,2,5,4,8,3,7};System.out.println(solution.maxArea(nums));}
}

时空复杂度分析等:

  • 时间复杂度 : O(n)

  • 空间复杂度 : O(1)

题目链接:

11. 盛最多水的容器 - 力扣(LeetCode)

LeetCode.M11.盛最多水的容器相关推荐

  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. 20200120:(leetcode)盛最多水的容器 两种解法

    盛最多水的容器 题目 基本思路 代码实现 题目 给定 n 个非负整数 a1,a2,-,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ...

  4. 【leetcode】 盛最多水的容器

    一.题目描述 给定一个长度为 n 的整数数组 height .有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) . 找出其中的两条线,使得它们与 x 轴共同构成 ...

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

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

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

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

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

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

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

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

  9. LeetCode 11 盛最多水的容器

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

最新文章

  1. 201621123057 《Java程序设计》第12周学习总结
  2. visual studio 运行java_Visual Studio 支持 Java?谣言止于智者
  3. 社交网络登录失败 当尝试用您的社交网络账号进行第三方登录时,发生了一个错误。
  4. 数据结构---多源最短路径
  5. 事业编待遇怎么样?考入事业编的分享一下吧?
  6. sql nolock_SQL Server NOLOCK和最佳优化
  7. 函数递归/二分法/列表,字典生成式/三元表达式/匿名函数/内置函数
  8. Android开发者必备工具-常见Android模拟器(MuMu、夜神、蓝叠、逍遥、雷电、Genymotion...)
  9. 刚刚,5000000 里程碑达成!
  10. Wannacry 勒索病毒有预设的解密口令“WNcry@2ol7”么?
  11. python中iter函数_Python基础:iter函数的两个参数
  12. Excel VBA 中有关使用 UBound + CurrentRegion 提示类型不匹配的问题及解决方案
  13. MySQL批量查某个库里每张表的数据量
  14. 盛迈坤电商:店铺自然流量怎么提升
  15. [ASP.NET MVC 小牛之路]02 - C#知识点提要
  16. Java编程序哥德巴赫猜想
  17. 分享一个Spring MVC 根据图片URL,下载图片的方法
  18. Django基础概念和MVT架构(一)
  19. 理解资产定价领域的“均衡模型”:APT、CAPM、马歇尔、瓦尔拉斯、无套利均衡
  20. 开发java的准备--下载与安装Java的JDK—Java学习(1)

热门文章

  1. 字节跳动Android开发大牛:90% 成功率的 BATZ Offer 收割机是怎样练成的!
  2. Angular入门到精通系列教程(15)- 目录结构(工程结构)推荐
  3. MPB:农科院牧医所赵圣国组-微生物DNA、RNA和蛋白质共提取方法
  4. 遗传算法实现寻找函数最值
  5. 新疆大盘鸡的标准做法
  6. kali2020安装最新版本Java
  7. MindManager思维导图画法教程
  8. 使用OpenCV和Python进行人脸识别
  9. 徐州php溪谷_ThinkPHP溪谷H5游戏平台系统V3.0完整版源码
  10. 蓝桥杯单片机决赛(国赛)第十一届题目加代码