盛最多水的容器

原创 2018年04月15日 22:32:18

给定 n 个非负整数 a1a2,...,an,每个数代表坐标中的一个点 (iai) 。画 n 条垂直线,使得垂直线 i 的两个端点分别为 (iai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

注意:你不能倾斜容器,n 至少是2。

思路:两变用两个指针往中间移动,每次记录容器体积,然后找出最大的体积。。。时间复杂度O(n),嗯.....就这样简单。。。

int maxArea(int* height, int heightSize) {
    int start=0;
    int end=heightSize-1;
    int v=0;
    while(start<end)
    {
        int high=height[start]<height[end]?height[start]:height[end];//取最小高度
        int area=(end-start)*high;
        v=v>area?v:area;//找最大的体积
        if(height[start]>height[end]) end--;
        else
            start++;
    }
    return v;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40328281/article/details/79954433

Leetcode 11. 盛最多水的容器

逼近法 每次左右两端都舍去短的那一端 若选择短的那一端【S=小于等于此端的高*小于等于当前的最大区间长度】,至多的面积也是选择最左最右的一个矩形,因此不必再考虑短的一端,直接舍去逼近class S...
  • Bendaai
  • Bendaai
  • 2018-03-22 16:17:24
  • 112

最大盛水容器问题_M

一、问题描述 给定n个正数a1,a2,...,an,其中每个元素代表一个坐标中的点(i,ai)。在(i,ai)与(i,0)间画出n条垂线 ,第i条线就是(i,ai)、(i,0)之间的连线,第i条垂线就...
  • Mr_virus
  • Mr_virus
  • 2016-09-30 17:18:08
  • 463

LeetCode11. Container With Most Water(思维题:选择左右边使得容器所盛水最多)

这道题,我独立想了好久!!!!一道很好的思维题!!!!!!!! 思路1是自己的求解方法O(nlogn),思路2是网上最优的解法O(n),暴利O(n^2)肯定超时! 题目链接:htt...
  • u012717411
  • u012717411
  • 2016-11-30 15:31:13
  • 306

LeetCode算法题集-11. Container With Most Water(能盛最多水的水桶)

给定n个非负整数a1, a2, ..., an, 每个都代表坐标轴上的高,其坐标为(i,ai).可以根据这条数组构建一幅柱形图,每任意两条柱子形成一个水桶,要求找到能盛最多水的水桶的面积。大致如下图,...
  • yudianxia
  • yudianxia
  • 2018-02-11 10:38:56
  • 1351

Leetcode刷题记——11. Container With Most Water(装最多水的容器)

一、题目叙述: Given n non-negative integers a1, a2, ..., an, where each represent...
  • sunshine0_0
  • sunshine0_0
  • 2016-10-17 14:53:32
  • 191

leetcode 11.盛最多水的容器

11. 盛最多水的容器 双指针法,挺常用的,学习一下。 class MaxArea { public: int maxArea(vector&amp;lt;int&amp;gt;&amp;...
  • yxccc_914
  • yxccc_914
  • 2018-03-25 18:31:57
  • 112

11.盛最多水的容器(Container With Most Water)

题目描述         给定n个正整数 a1,a2,...,an,其中每个整数用坐标(i,ai)表示。连接点(i,ai)和(i,0)画出直线i,总共有n条线。请找出其中两条直线,使得它们与x轴形成的...
  • Regemc
  • Regemc
  • 2018-04-01 20:14:16
  • 14

Leetcode trapping rain water 容器装水问题

求数组组成的凹槽能盛水的容积 主要有三种方法,之前尝试两种方法都会超时,最后一种方法思路:从两端向中间靠拢,求以两端为边的容器能盛水的容积,然后所有值都剪去短边的值,找到新的两边,不断迭代下去直到中间...
  • hezzfew
  • hezzfew
  • 2016-05-05 17:03:57
  • 557

lintcode-装最多水的容器-383

给定 n 个非负整数 a1, a2, ..., an, 每个数代表了坐标中的一个点 (i, ai)。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)和(i, 0)。找到两条线,使得其...
  • ljlstart
  • ljlstart
  • 2015-10-14 23:02:41
  • 918

Lintcode 装最多水的容器

给定 n 个非负整数 a1, a2, ..., an, 每个数代表了坐标中的一个点 (i, ai)。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)和(i, 0)。找到两条线,使...
  • Hk_john
  • Hk_john
  • 2017-04-16 23:35:15
  • 471
收藏助手
不良信息举报
您举报文章:盛最多水的容器
举报原因:
原因补充:

(最多只允许输入30个字)