Lintcode383 Container With Most Water solution 题解

【题目描述】

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/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,779评论 0 33
  • 现在回头看自己之前画的,我怎么觉得当时开外挂了 下面这张是临摹,当时画完感觉成就感爆棚,可终究是临摹啊,和写生的差...
    画画的半山阅读 455评论 2 5
  • 自去年开始不阶段晨跑以来,我习惯了这样的方式开启我日常崭新的每一天!旅行中更是以这种用脚步丈量着每一个新的城市,一...
    林涧阅读 498评论 2 8
  • 我不懂 也不想算清 我与你之间 是怎样的感情 隔断的是时空 阻断的是距离 我与你 永远期待着 重逢
    凉笙凡人阅读 243评论 0 2