11. 盛最多水的容器(java实现)--2种解法(左右夹逼,暴力)LeetCode
文章目录
- 题目:
- 解法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相关推荐
- 【LeetCode】1. 盛最多水的容器:C#三种解法
题目:https://leetcode-cn.com/problems/container-with-most-water/ 盛最多水的容器 难度:中等 给你 n 个非负整数 a1,a2,...,an ...
- 算法leetcode|11. 盛最多水的容器(rust重拳出击)
文章目录 11. 盛最多水的容器: 样例 1: 样例 2: 提示: 原题传送门: 分析 题解 rust go c++ java typescript python 11. 盛最多水的容器: 给定一个长 ...
- 11. 盛最多水的容器 golang
11. 盛最多水的容器 (一道比较特殊的题) 之所以说特殊是因为这个题用动态规划反而比暴力破解法还复杂. 这种容器的题,就是前后指针方向.尽量别考虑别的思路. 11. 盛最多水的容器 给你 n 个非负 ...
- LeetCode 11. 盛最多水的容器
11. 盛最多水的容器 思路:双指针,放弃低的那边 class Solution { public:int maxArea(vector<int>& height) {int n= ...
- [贪心|双指针] leetcode 11 盛最多水的容器
[贪心|双指针] leetcode 11 盛最多水的容器 1.题目 题目链接 给你 n 个非负整数 a1,a2,-,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 ...
- leetcode系列-11.盛最多水的容器
leetcode系列–第11题.盛最多水的容器 给定一个长度为 n 的整数数组 height .有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) .找出其中的两 ...
- java盛最多水的容器_Leetcode刷题java之11. 盛最多水的容器(top100)
执行结果: 通过 显示详情 执行用时 :5 ms, 在所有 Java 提交中击败了45.23% 的用户 内存消耗 :40 MB, 在所有 Java 提交中击败了25.70%的用户 题目: 给定 n 个 ...
- 【LeetCode笔记】11.盛最多水的容器(Java、双指针法)
文章目录 题目描述 代码 & 解题思路 题目描述 无 代码 & 解题思路 思路:使用左右两个指针,不断缩小范围,并在每次缩小的过程对最大值进行更新. 代码实现不难,主要是弄明白为啥这样 ...
- 6. Leetcode 11. 盛最多水的容器 (数组-双向双指针)
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) .找出其中的两条线 ...
最新文章
- migo获取header sap_Adjust Stock(MI06, MI07, MIGO)
- 5gh掌上云计算认证不通过_阿里云ACP认证考试攻略、考试心得、费用及常见问题...
- koa2 mysql 中间件_Koa2 和 Express 中间件对比
- Mybatis源码之(TypeAliasRegistry)TypeAlias别名实现机制
- duplicate database的时候,rman连接 auxiliary database的后状态不正确
- 项目开发中如何提升团队的战力?
- iphone投屏ipad_幕享免费无线投屏:你朝思暮想的屏幕互联方式
- TinyPNG批量压缩工具脚本Python
- Java代码整洁之道
- 无剑100芯片平台的环境搭建
- 360链接云服务器失败怎么回事,360智能摄像机连接失败原因 360智能摄像机连接失败解决办法...
- 【QGIS入门实战精品教程】10.1:QGIS基于DEM数据的地形分析案例教程
- excel公式不自动计算_公式 | Excel根据起止日期,自动计算每月的计息天数
- 机器学习 - SVD
- 教你一个快速查找批量文件的好方法
- 卷积神经网络的卷积运算总结
- 微创机器人上市收涨背后:新股热情或回暖,下一个是谁?
- OpenGL绘制地球仪(包含环境配置)
- 不靠研发靠营销,云米科技没“科技”?
- 线程java买火车票_Java线程中卖火车票问题的深入讲解
热门文章
- 我的世界显示服务器头像,我的世界怎么让服务器升级换头像 | 手游网游页游攻略大全...
- 上海大学计算机学院2021,2020-2021学年秋季学期新生选课通知
- python3自学之路作业 选课系统
- 晕菜...又要出差了...
- Wind量化接口常用错误状态码
- EXCEL仪表盘,可视化大屏,数据看板制作
- 宏基A500 固件升级
- Ubuntu操作系统综合贴
- AUTOSAR开发工具DaVinci Configurator里的Modules
- mysql数据模型三要素_E-R模型的三要素为实体、属性、联系-智慧树数据库原理章节答案...