赞
踩
给定 n 个非负整数 `a1, a2, ..., an`, 每个数代表了坐标中的一个点 `(i, ai)`。画 n 条垂直线,使得 i 垂直线的两个端点分别为`(i, ai)`和`(i, 0)`。找到两条线,使得其与 x 轴共同构成一个容器,以容纳最多水。
#### Solution
思路:从两头开始逐渐找长方形的长,
```
class Solution {
public:
/**
* @param heights: a vector of integers
* @return: an integer
*/
int maxArea(vector<int> &heights) {
// write your code here
int begin = 0,end = heights.size()-1;
int area = 0;
while(begin < end){
area = max(area, min(heights[begin],heights[end]) * (end - begin));
if(heights[begin] > heights[end]){
end --;
}else{
begin++;
}
}
return area;
}
};
```
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。