码迷,mamicode.com
首页 > 其他好文 > 详细

【Leetcode】Container With Most Water

时间:2014-06-17 22:17:43      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   tar   color   

Given n non-negative integers a1a2, ..., an, where each represents a point at coordinate (iai). n vertical lines are drawn such that the two endpoints of line i is at (iai) 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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!