[leetcode] 11.盛最多水的容器
盛最多水的容器
题意好绕,看半天都没懂要干什么。
我直接上个图可能就能一眼看明白了:
总之,当明白题意后,直接就能想到暴力法枚举所有可能性,不过如果再画一下图基本就能发现:两线段之间形成的区域总是会受到其中较短那条长度的限制。
我举个例子,对于所有以(1,a1)为左边构成的矩阵,最大的一个肯定在右边(n,an)开始数,第一个大于等于ai的边,我们记成aj。即以a1为左边的最大矩阵肯定是 以right边从(j,aj)~(n,an)构成矩阵中的其中一个。实际上,对于(1,a1)~(j,aj)的边,我们就没有必要去算了。然后,以(2,a2)为左边,此时注意,如果a2小于等于a1,那么不必算了。如果a2>a1,那么此时与a1同理。依次类推。。(我想到的这个思路感觉好绕- -)
官方给出的双指针法好像更清晰易懂一些,贪心思想:
最初我们考虑由最外围两条线段构成的区域。现在,为了使面积最大化,我们需要考虑更长的两条线段之间的区域。如果我们试图将指向较长线段的指针向内侧移动,矩形区域的面积将受限于较短的线段而不会获得任何增加。但是,在同样的条件下,移动指向较短线段的指针尽管造成了矩形宽度的减小,但却可能会有助于面积的增大。因为移动较短线段的指针会得到一条相对较长的线段,这可以克服由宽度减小而引起的面积减小。
题不错,其实还比较考验智商的,打算把他选为面试题
代码不贴了
转载于:https://www.cnblogs.com/acbingo/p/9231465.html
[leetcode] 11.盛最多水的容器相关推荐
- [贪心|双指针] leetcode 11 盛最多水的容器
[贪心|双指针] leetcode 11 盛最多水的容器 1.题目 题目链接 给你 n 个非负整数 a1,a2,-,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 ...
- LeetCode 11. 盛最多水的容器
11. 盛最多水的容器 思路:双指针,放弃低的那边 class Solution { public:int maxArea(vector<int>& height) {int n= ...
- 6. Leetcode 11. 盛最多水的容器 (数组-双向双指针)
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) .找出其中的两条线 ...
- LeetCode 11. 盛最多水的容器(双指针)
文章目录 1. 题目信息 2. 解题 1. 题目信息 给定 n 个非负整数 a1,a2,-,an,每个数代表坐标中的一个点 (i, ai) . 在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 ...
- leetcode —— 11. 盛最多水的容器
给定 n 个非负整数 a1,a2,...,ana_1,a_2,...,a_na1,a2,...,an,每个数代表坐标中的一个点 (i,ai)(i, a_i)(i,ai) .在坐标内画 n 条垂 ...
- LeetCode #11 盛最多水的容器
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) .找出其中的两条线 ...
- LeetCode——11. 盛最多水的容器
题目链接:https://leetcode-cn.com/problems/container-with-most-water/ #include <bits/stdc++.h> #inc ...
- LeetCode 11 盛最多水的容器
https://leetcode-cn.com/problems/container-with-most-water/ 解决方案 class Solution {public int maxArea( ...
- 力扣(leetcode) 11. 盛最多水的容器 (短板木桶原理详解)
题目在这:https://leetcode-cn.com/problems/container-with-most-water/ 思路分析: 本题容易想到使用双指针维护水桶的左边和右边. 开始时,L指 ...
- 算法leetcode|11. 盛最多水的容器(rust重拳出击)
文章目录 11. 盛最多水的容器: 样例 1: 样例 2: 提示: 原题传送门: 分析 题解 rust go c++ java typescript python 11. 盛最多水的容器: 给定一个长 ...
最新文章
- 【Python】用于在 Python 中处理 PDF 文件的 PyPDF2 库
- android res文件夹下面的 values-v11 、 values-v14
- smarty5变量修改器
- spring mvc ModelAndView向前台传值
- 【51单片机快速入门指南】3:中断系统
- 如何升级浏览器_手把手教你申请IOS14 Beta升级方法
- ubuntu编译mysql源码
- 学习sql注入:猜测数据库_学习SQL:SQL数据类型
- GitHub上下载源代码的方法
- GraPhlAn:最美进化树或层级分类树学习笔记
- JavaScript分割字符串
- 计算机网络应用层1练习题
- Mackdown 编辑器-马克飞象
- 一键修改计算机名(无需重启)
- 四轴码垛机器人DH模型运动学
- mysql insert 空字符报错
- 作为程序员,哪些技能是必须要掌握的?
- hpdl380g9没有f10_惠普Hp DL380 GEN9 UEFI模式安装win2008 r2的方法
- 智伴机器人wifi键在哪里_智伴机器人的操作和功能
- 2023的展望:不积跬步,无以至千里;不积小流,无以成江海
热门文章
- SCCM 2012系列2 服务器准备下
- Linux网络服务_dhcp服务和dhcp中继服务
- Android开发指南(32) —— Multimedia and Camera - Audio Capture
- JAVA.SQL.SQLEXCEPTION: INCORRECT STRING VALUE: '\XF0\X9F\X92\X94' FOR COLUMN 'CONTENT' AT ROW 1
- 一条ssh命令实现端口转发,实现跨机器直接访问
- 理解Java的几张图
- 有赞大裁员:裁员会超过1500人,加盟4年半的百度副总裁也已离职
- Java17,有史以来最快 JDK!
- 国内首家,携程试点每周两天居家办公反响热烈,76%的员工主动报名
- IntelliJ IDEA 2019.3 首个最新访问版本发布,新特性抢先看