美文网首页
Lintcode383 Container With Most

Lintcode383 Container With Most

作者: 程风破浪会有时 | 来源:发表于2017-12-18 23:52 被阅读0次

    【题目描述】

    Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate(i, ai).vertical lines are drawn such that the two endpoints of line is at(i, ai)and(i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.

    Notice:You may not slant the container.

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

    【注】容器不可倾斜。

    【题目链接】

    www.lintcode.com/en/problem/container-with-most-water/

    【题目解析】

    木桶原理大家肯定都知道,水盛多少取决于最短的杯壁,所以此题还可以引申为往围成的区域内放矩形,怎样使得矩形面积最大。题目中的不能倾斜(slant:倾斜,倾倒)对应为矩形必须水平放置。

    复杂度为O(n)的思想是贪心原理,先从底边最大的情况考虑,计算最大面积后,此时要将底边长度减1,只需要将杯壁较短的那一边移动一个单位距离,得到的解必定优于杯壁较长那边移动的情况。这样保证每次移动都得到的是局部最优解。

    【参考答案】

    www.jiuzhang.com/solutions/container-with-most-water/

    相关文章

      网友评论

          本文标题:Lintcode383 Container With Most

          本文链接:https://www.haomeiwen.com/subject/ugdrbxtx.html