leetcode 11. Container With Most Water-最大容器|双指针

原创 2016年06月01日 21:31:03
原题链接:11. Container With Most Water

【思路】

用两枚指针——left, right 分别从左和右向中间遍历(left 和 right 中高度较小的向中间靠齐)。在遍历过程中遇到更大的高度时,由于可能得到更大面积,因此要和原先面积做一次比较:

public class Solution {
    public int maxArea(int[] height) {
        int l = 0, r = height.length - 1, res=0;
        while(l < r)
            res = Math.max(res, (r-l) * (height[l] < height[r] ? height[l++] : height[r--]));
        return res;
    }
}
45 / 45 test cases passed. Runtime: 4 ms  Your runtime beats 73.09% of javasubmissions.

class Solution(object):
    def maxArea(self, height):
        """
        :type height: List[int]
        :rtype: int
        """
        l, r, mArea = 0, len(height)-1, 0
        while l < r :
            if height[l] < height[r] :
                mArea, l = max(mArea, (r-l)*height[l]), l+1
            else :
                mArea, r = max(mArea, (r-l)*height[r]), r-1
        return mArea
45 / 45 test cases passed. Runtime: 84 ms  Your runtime beats 71.06% of pythonsubmissions.

版权声明:本文为博主原创文章,未经博主允许不得转载。

【LeetCode-面试算法经典-Java实现】【011-ContainerWithMostWater(容纳最多的水)】

【011-ContainerWithMostWater(容纳最多的水)】找两条竖线然后这两条线以及X轴构成的容器能容纳最多的水。使用贪心算法   1.首先假设我们找到能取最大容积的纵线为 i, j (...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月19日 06:58
  • 2533

寻找最大储水量的容器 Container With Most Water

题目源自于leetcode。 题目:数组的n个数值代表n个高度各异的垂线段。以x轴作为底座,选2个垂线段作为高。形成一个三面的容器。求储水量最大的那个。 方法:容器的储水量与底座长度和2边高的较小...
  • luckyjoy521
  • luckyjoy521
  • 2013年10月17日 08:55
  • 1473

LeetCode Container With Most Water 查找容水量最大的容器 动态规划法思想分析

其实这个是动态规划法做的,因为我没看到有人分析其中的动态规划法思想,所以在这里分析一下。 下面分析是怎么样的动态规划法思想。 1 分区,首先分最大区间,左边高度为height[0],右边高度为he...
  • kenden23
  • kenden23
  • 2013年11月24日 14:33
  • 2514

LeetCode 11 Container With Most Water(最大水容器)

翻译给定n个非负整数a1,a2,...,an,其中每个代表一个点坐标(i,ai)。n个垂直线段例如线段的两个端点在(i,ai)和(i,0)。找到两个线段,与x轴形成一个容器,使其包含最多的水。备注:你...
  • NoMasp
  • NoMasp
  • 2015年10月12日 22:11
  • 3871

LeetCode Container With Most Water 查找容水量最大的容器 动态规划法思想分析

其实这个是动态规划法做的,因为我没看到有人分析其中的动态规划法思想,所以在这里分析一下。 下面分析是怎么样的动态规划法思想。 1 分区,首先分最大区间,左边高度为height[0],右边高度为he...
  • kenden23
  • kenden23
  • 2013年11月24日 14:33
  • 2514

leetcode解题之 11. Container With Most Water Java版(最大盛水容积)

leetcode解题之 11. Container With Most Water Java版(最大盛水容积)
  • mine_song
  • mine_song
  • 2017年04月06日 15:13
  • 528

leetcode11. Container With Most Water两根柱子围成最大面积

牛客网第一课第三题 问题:给定一个非负数的数组,数组中的每个值代表一个柱子的高度,柱子的宽度是1。两个柱子之间可以围成一个面积,规定:面积=两根柱子的最小值*两根柱子之间的距离。 例子:数 组[3...
  • qq_31010431
  • qq_31010431
  • 2016年08月13日 16:16
  • 352

[LeetCode - 双指针] 11. Container With Most Water

1 问题 Given n non-negative integers a1,a2,...,an,a_1, a_2, ..., a_n, where each represents a point ...
  • jitianyu123
  • jitianyu123
  • 2017年05月10日 22:16
  • 108

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

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

LeetCode 11. Container With Most Water(容器装水)

原题网址:https://leetcode.com/problems/container-with-most-water/ Given n non-negative integers a1,...
  • jmspan
  • jmspan
  • 2016年05月19日 05:24
  • 451
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode 11. Container With Most Water-最大容器|双指针
举报原因:
原因补充:

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