标签:style class blog code tar color
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.
思路:可以从最外侧开始考虑,第1层以及第n层所形成的容器当做最初始的容器。每个容器的面积,取决于最短的的木板以及宽度,要想减少宽度之后,能够得到更大的容量,必须保证木板的长度增大了。采用贪心策略可以解决。
class Solution {
public:
int maxArea(vector<int> &height) {
int width = height.size();
if(width <= 1) return 0;
int start = 0;
int end = width - 1;
int result = INT_MIN;
while(start < end)
{
int tempArea = min(height[start], height[end]) * (end - start);
result = max(result, tempArea);
if(height[start] <= height[end])
start++;
else
end--;
}
return result;
}
};【Leetcode】Container With Most Water,布布扣,bubuko.com
【Leetcode】Container With Most Water
标签:style class blog code tar color
原文地址:http://blog.csdn.net/lipantechblog/article/details/31373643