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

LeetCode Container With Most Water

时间:2014-12-04 21:33:43      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   os   sp   for   on   

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.

class Solution {
public:
    int maxArea(vector<int> &height)
    {
        int j=height.size()-1,i=0,mx=0;

        while(i<j)
        {
            mx=max(mx,((j-i)*(min(height[i],height[j]))));

            if(height[i]<height[j])
             i++;
             else if(height[i]>=height[j])
             j--;
        }
        return mx;
    }
};
人家的代码,哎
class Solution {
public:
        int min(int a,int b)
        {
            return a>b?b:a;
        }
    int maxArea(vector<int> &height) {
        vector<int> first,last;
        int max = height[0];
        first.push_back(max);
        first.push_back(0);
        for(int i=0;i<height.size();i++)
        {
            if(height[i] > max)
            {
                max = height[i];
                first.push_back(max);
                first.push_back(i);
            }
            else continue;
        }
        
        max = height[height.size()-1];
        last.push_back(max);
        last.push_back(height.size()-1);
        
        for(int i=height.size()-1;i>=0;i--)
        {
            if(height[i] > max)
            {
                max = height[i];
                last.push_back(max);
                last.push_back(i);
            }
            else continue;
        }
        
        max = 0;
        for(int i=0;i<first.size();i+=2)
        {
            for(int j=0;j<last.size();j+=2)
            {
                if(min(first[i],last[j]) * (last[j+1] - first[i+1]) > max)
                 max = min(first[i],last[j]) * (last[j+1] - first[i+1]);
            }
        }
        return max;
    }
};
我的代码,哎

解题思路:不说了

LeetCode Container With Most Water

标签:style   blog   io   ar   color   os   sp   for   on   

原文地址:http://www.cnblogs.com/55open/p/4143761.html

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