装最多水的容器
来源:互联网 发布:淘宝售假申诉补充留言 编辑:程序博客网 时间:2024/05/22 16:04
装最多水的容器
给定 n 个非负整数 a1, a2, …, an, 每个数代表了坐标中的一个点 (i, ai)。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)和(i, 0)。找到两条线,使得其与 x 轴共同构成一个容器,以容纳最多水。
注意事项
容器不可倾斜。
样例
给出[1,3,2], 最大的储水面积是2.
思想:可以理解容纳的水量是两条边最短的那条*两条边的距离。需要定义left
和right
两个指针分别指向数组的左右两端,然后两个指针向中间搜索,每移动一次算一个值和结果比较取较大的,容器装水量的算法是找出左右两个边缘中较小的那个乘以两边缘的距离。这个更新的顺序不能错。
代码如下:
class Solution {public: /* * @param heights: a vector of integers * @return: an integer */ int maxArea(vector<int> &heights) { // write your code here //防止越界 if(heights.size()<2)return 0; int left = 0; int right = heights.size() - 1; int maxarea = 0; while(left < right){ maxarea = max(maxarea,(right-left)* min(heights[left],heights[right])); heights[left] > heights[right] ? right--:left++; } return maxarea; }};
阅读全文
0 0
- 装最多水的容器
- 装最多水的容器
- 装最多水的容器
- 装最多水的容器
- 装最多水的容器
- LintCode-装最多水的容器
- lintcode-装最多水的容器-383
- LintCode_383_装最多水的容器
- LintCode:装最多水的容器
- lintcode,装最多水的容器
- Lintcode 装最多水的容器
- Java实现-装最多水的容器
- Lintcode 装最多水的容器
- LintCode:M-装最多水的容器
- 装最多水的容器-LintCode
- Container With Most Water(能装最多水的容器)
- lintcode刷题——装最多水的容器
- [LintCode 383] 装最多水的容器(Python)
- [JAVA] Spring DI简述
- 树莓派设置中文及中文输入法
- 某公司java面试题
- JAVA_char[]数组与String类型的互换
- Android开发艺术探索读书笔记-View的工作原理(一)
- 装最多水的容器
- Sass语法(三)之循环
- Java Message Service 2(ActiveMQ)
- 如何判断java中方法是否重载
- Spring IoC容器之---通过实例理解什么是IoC
- Android 友盟统计
- HTML基础(一)
- RecyclerView和listview的区别
- JavaScript 箭头函数