最大盛水量
来源:互联网 发布:贵州广电网络开户费 编辑:程序博客网 时间:2024/04/28 07:01
Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water. Note: You may not slant the container.
int maxArea(vector<int>& height) {size_t max_area = 0;size_t start = 0, end = height.size() - 1;while (start < end){size_t tmp_area = (end - start) * min(height[start], height[end]);max_area = tmp_area > max_area ? tmp_area : max_area;if (height[start] > height[end]){--end;}else {++start;}}return max_area;}
例子,比如说[3,10,6,5,100,9,7]
当start在3,end在7的时候.此时之间差距最大,为 7 - 1 - 6。并且此时3为最短的边,所以面积算法是3*6,此时就没有必要再计算7左边的数字了,因为 3为边,end越往左移,start 与 end之间距离会越来越小,所以此时(3,7) 一定是以3为边的最大的面积。所以可以跳过7左边剩余的计算, 去计算下一个数字10.
当start 在10的位置时,end在7的位置。此时应该以7为边,同理10右侧的数字组成的面积肯定会(10,7)组成的面积要小。所以可以跳过 10右边剩余的计算。最终的到代码逻辑。
0 0
- 最大盛水量
- 容器最大盛水量
- leetcode 计算最大盛水量
- 经典算法--最大存水量问题
- leetcode | 最大装水量问题 | python
- LeetCode Container With Most Water 查找容水量最大的容器 动态规划法思想分析
- x轴上树立了n块木板,他们的高度为H[i],求任意两块木板和x轴组成的容器,盛水量最大是多少
- BFS(两个水杯转换水量)
- Trapping Rain Water 求存水量 @LeetCode
- 一)中央空调变风量变水量整体群控节能系统(专利技术)
- 最大
- 最大
- 最大
- 最大
- 最大
- 盛水最大量---贪心算法
- 最大盛水容器问题_M
- 最大流-最大利益
- Adb connection Error:远程主机强迫关闭了一个现有的连接 解决方法
- bzoj 3280: 小R的烦恼(费用流)
- HRM方法顺序
- C语言文件操作
- poj 3278 Catch That Cow 广搜
- 最大盛水量
- dbms_random.value 随机数问题 & 用DBMS_RANDOM生成文本和日期值
- Python debug —— 逻辑错误(四)
- 启用伙伴算法
- Linux入门使用-1
- 在win7环境下安装websphere6.1乱码情况解决
- task的几种状态
- HashMap实现原理(一)
- simple-spring-memcached简介