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

Container With Most Water

时间:2016-01-03 22:22:25      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

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.

 

Subscribe to see which companies asked this question

class Solution {
public:
    /*
     * 题目就是给出一堆坐标,求由坐标组成面积最大的矩形
     * 矩形的面积主要由最短的坐标所控制,例如整个vecotr只有 3,5
     * 则面积为 3 * (1 - 0) = 3
     * 解决方式左右两个下标,然后向中间移动,求这两个下标所对应的y与x轴
     * 组成的最大矩形
     */
    int maxArea(vector<int> &height) {
        int start =0;
        int end = height.size()-1;
        int maxV = INT_MIN;
        while(start<end)
        {
            int contain = min(height[end], height[start]) * (end-start);
            maxV = max(maxV, contain);
            if(height[start]<= height[end])
            {
                start++;
            }
            else
            {
                end--;
            }
        }
        return maxV;
    }
};

 

Container With Most Water

标签:

原文地址:http://www.cnblogs.com/SpeakSoftlyLove/p/5097135.html

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