贪心算法找最大容器

作者: 历十九喵喵喵 | 来源:发表于2020-06-27 14:19 被阅读0次

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

    思路:找出对期望值贡献最大的数据:从两边缩小寻找最高的直线。

    抽象成当容器的长度从两边开始时,宽度一定是最大的,只要不断地往中间缩小,放弃高度比较矮的那个,即移动高度比较小的那个才有可能找到面积最大值。

    步骤:

    计算最大宽度的原始面积,移动高度较小的一边寻求最大面积,当求得的面积比原始面积大时,替换掉原始面积,结果返回最大面积。

    相关文章

      网友评论

        本文标题:贪心算法找最大容器

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