Container With Most Water
2016-06-25 16:16
337 查看
问题描述:
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.
其实就是求 找出两条垂线来,与x轴构成的容器能盛更多的水。
算法:
设置两个两个指针i(只能向后移动) j(只能向前移动)(不是真正意义的指针),初始的时候i 指向第一个和 j 指向最后一个,求这两个指针和x轴构成的面积,然后判断 两个指针所值得高度的大小,小的那个指针移动一个单位,大的不动,如果两个指针所指的高度相等,那么同时移动,直到 i==j 或者 i>j 循环结束
时间复杂度
O(n)代码实现:
int maxArea(vector<int>& height) { int i=0; int j=height.size()-1; int value=0; int height_max=0; while(i<=j) { value=(j-i)*min(height[i],height[j]); if(value>height_max) height_max=value; if(height[i]<height[j]) i++; else if(height[i]>height[j]) j--; else { i++; j--; } } return height_max; }
相关文章推荐
- FreeSWITCH voicemail
- 基于MyBatis3.0.6的基本操作介绍
- Parameter 'book' not found. Available parameters are [0, 1, param1, param2]
- pair 的用法
- 【JZOJ 3463】 军训 training
- WAIT EVENT:read by other session
- Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile 解决办法
- ML学习笔记(一):naive bayas
- apt-get command fail
- RAID基本概念
- 问题 Q: 2010省赛题:Repairing a Road
- odoo8 email
- There was an internal Api failed
- leetcode 219 Contains Duplicate II
- 1086. Tree Traversals Again
- LeetCode-70-Climbing Stairs
- LeetCode-70-Climbing Stairs
- Mybaits的第一个程序
- 谷歌约束控件(ConstraintLayout)扁平化布局入门
- 8.0/9.0 Email 设置