• [LeetCode] 11. Container With Most Water


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

    Note: You may not slant the container and n is at least 2.

    The above vertical lines are represented by array [1,8,6,2,5,4,8,3,7]. In this case, the max area of water (blue section) the container can contain is 49.

    Example:

    Input: [1,8,6,2,5,4,8,3,7]
    Output: 49

    盛最多水的容器。

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

    说明:你不能倾斜容器。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/container-with-most-water
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    存储水量 = 宽度 * 高度 = (right - left) * Math.min(height[left], height[right])

    时间O(n)

    空间O(1)

    Java实现

     1 class Solution {
     2     public int maxArea(int[] height) {
     3         int res = 0;
     4         int left = 0;
     5         int right = height.length - 1;
     6         while (left < right) {
     7             res = Math.max(res, Math.min(height[left], height[right]) * (right - left));
     8             if (height[left] < height[right]) {
     9                 left++;
    10             } else {
    11                 right--;
    12             }
    13         }
    14         return res;
    15     }
    16 }

    JavaScript实现

     1 /**
     2  * @param {number[]} height
     3  * @return {number}
     4  */
     5 var maxArea = function (height) {
     6     let res = 0;
     7     let left = 0;
     8     let right = height.length - 1;
     9     while (left < right) {
    10         res = Math.max(res, Math.min(height[left], height[right]) * (right - left));
    11         if (height[left] < height[right]) {
    12             left++;
    13         } else {
    14             right--;
    15         }
    16     }
    17     return res;
    18 };

    LeetCode 题目总结

  • 相关阅读:
    jquery 中 $.map 的使用方法
    数据库 'MessageManage' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。
    Post提交
    MD5加密、时间戳转换、base64算法加密、解密
    C#中timer类的用法
    软件项目版本号的命名规则及格式
    SQL Server数据库脚本备份与还原
    C# Out,Ref 学习总结
    在线工具
    构造和析构 的顺序
  • 原文地址:https://www.cnblogs.com/cnoodle/p/11781368.html
Copyright © 2020-2023  润新知