文章目录

  • 题目:
  • 解法1:左右夹逼
  • 解法2:暴力

题目:

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

说明:你不能倾斜容器。

示例 1:

输入:[1,8,6,2,5,4,8,3,7]
输出:49
解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

示例 2:

输入:height = [1,1]
输出:1

示例 3:

输入:height = [4,3,2,1,4]
输出:16

示例 4:

输入:height = [1,2,1]
输出:2

提示:

n = height.length
2 <= n <= 3 * 10^4
0 <= height[i] <= 3 * 10^4

解法1:左右夹逼

/*** 思路:* 双指针,指向数组的两端* 移动指针是横向长度变小的(向内收缩),所以要想面积最大,就移动l和r中高度低的那个* 计算面积和最大值进行比较* 直到两个指针相遇*/  public int maxArea(int[] height) {int max=0,l=0,r=height.length-1;while (r>l){int area=Math.min(height[l],height[r])*(r-l);max=max>area?max:area;if (height[l]>height[r])r--;else l++;}return max;}

时间复杂度:On

空间复杂度:O1
​​
​​

解法2:暴力

 /*** 思路:* 遍历所有可能* 1-n* 2-n* ...* 以此类推*/public int maxArea(int[] height) {int max=0;for (int i=0;i<height.length-1;i++){for (int j=i+1;j<height.length;j++){int area=(j-i)*Math.min(height[i],height[j]);max=max>area?max:area;}}return max;}

时间复杂度:On^2

空间复杂度:O1

11. 盛最多水的容器(java实现)--2种解法(左右夹逼,暴力)LeetCode相关推荐

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

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

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

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

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

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

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

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

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

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

  6. leetcode系列-11.盛最多水的容器

    leetcode系列–第11题.盛最多水的容器 给定一个长度为 n 的整数数组 height .有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) .找出其中的两 ...

  7. java盛最多水的容器_Leetcode刷题java之11. 盛最多水的容器(top100)

    执行结果: 通过 显示详情 执行用时 :5 ms, 在所有 Java 提交中击败了45.23% 的用户 内存消耗 :40 MB, 在所有 Java 提交中击败了25.70%的用户 题目: 给定 n 个 ...

  8. 【LeetCode笔记】11.盛最多水的容器(Java、双指针法)

    文章目录 题目描述 代码 & 解题思路 题目描述 无 代码 & 解题思路 思路:使用左右两个指针,不断缩小范围,并在每次缩小的过程对最大值进行更新. 代码实现不难,主要是弄明白为啥这样 ...

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

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

最新文章

  1. migo获取header sap_Adjust Stock(MI06, MI07, MIGO)
  2. 5gh掌上云计算认证不通过_阿里云ACP认证考试攻略、考试心得、费用及常见问题...
  3. koa2 mysql 中间件_Koa2 和 Express 中间件对比
  4. Mybatis源码之(TypeAliasRegistry)TypeAlias别名实现机制
  5. duplicate database的时候,rman连接 auxiliary database的后状态不正确
  6. 项目开发中如何提升团队的战力?
  7. iphone投屏ipad_幕享免费无线投屏:你朝思暮想的屏幕互联方式
  8. TinyPNG批量压缩工具脚本Python
  9. Java代码整洁之道
  10. 无剑100芯片平台的环境搭建
  11. 360链接云服务器失败怎么回事,360智能摄像机连接失败原因 360智能摄像机连接失败解决办法...
  12. 【QGIS入门实战精品教程】10.1:QGIS基于DEM数据的地形分析案例教程
  13. excel公式不自动计算_公式 | Excel根据起止日期,自动计算每月的计息天数
  14. 机器学习 - SVD
  15. 教你一个快速查找批量文件的好方法
  16. 卷积神经网络的卷积运算总结
  17. 微创机器人上市收涨背后:新股热情或回暖,下一个是谁?
  18. OpenGL绘制地球仪(包含环境配置)
  19. 不靠研发靠营销,云米科技没“科技”?
  20. 线程java买火车票_Java线程中卖火车票问题的深入讲解

热门文章

  1. 我的世界显示服务器头像,我的世界怎么让服务器升级换头像 | 手游网游页游攻略大全...
  2. 上海大学计算机学院2021,2020-2021学年秋季学期新生选课通知
  3. python3自学之路作业 选课系统
  4. 晕菜...又要出差了...
  5. Wind量化接口常用错误状态码
  6. EXCEL仪表盘,可视化大屏,数据看板制作
  7. 宏基A500 固件升级
  8. Ubuntu操作系统综合贴
  9. AUTOSAR开发工具DaVinci Configurator里的Modules
  10. mysql数据模型三要素_E-R模型的三要素为实体、属性、联系-智慧树数据库原理章节答案...