两条垂线与X轴所围成最大储水量区域的面积

  • 题目描述

给定n个非负整数a1,a2,...,an,其中每个表示坐标(i,ai)处的点。
绘制n条垂直线,使得线i的两个端点位于(i,ai)和(i,0)。
找到两条线,它们与x轴一起形成一个容器,这个容器装水量最多。
注意:容器不能倾斜

  • 解题思路
    求两条垂线与X轴所围成矩形区域的最大面积 ,矩形的高取较小的那条垂线。

  • 时间复杂度:O(n^2)
int maxArea(vector<int> &height)
{
    int max_area = 0;
    int len = height.size();
    for(int i = 0; i < len; ++i)
    {
        for (int j = i+1; j < len; ++j)
        {
            int area = min(height[i], height[j]) * (j - i);
            if(area > max_area)
                max_area = area;
        }
    }
    return max_area;
}
  • 时间复杂度:O(n)
int maxArea_better(vector<int> &height)
{
    int max_area = 0;
    int n = height.size();
    int i = 0;
    int j = n - 1;
    while(i < j)
    {
        int area = min(height[i], height[j]) * (j - i);
        if(area > max_area)
            max_area = area;
        if(height[i] < height[j])
            i++;
        else
            j--;
    }
    return max_area;
}

推荐阅读更多精彩内容

  • 栈 1. 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被...
    IT程序员阅读 3,012评论 0 8
  • 1.把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建...
    锐心凌志阅读 2,678评论 1 27
  • 不知道是怀着怎样的心绪打下这几个字的,太多太乱,无从说起。 2018年考研落下帷幕,昨天下午走出考场的那一刻,充满...
    传说头发软的人温柔阅读 11评论 0 1
  • 三天前的315晚会,又是一年一度的打假日,很多企业被央视点名,进而被国人所唾弃,一落千丈。但今年呢,无印良品好像成...
    JJJanuary阅读 4,995评论 1 1
  • 大概还是十几岁的时候吧,特别喜欢看《我叫金三顺》这部韩剧,被女主角三顺的一切美好打动。 后来听说演员本人也是极美极...
    喻小欢阅读 129评论 0 0