zoukankan      html  css  js  c++  java
  • LeetCode——011 Container With Most Water

    Description

    Given n non-negative integers a1, a2, ..., an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i 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.

    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
    

    Solution

    水桶原理,即水桶的容量取决于最短的那块木板。
    左右不停的寻找最高边缘即可。

    class Solution {
    public:
        int maxArea(vector<int>& height) {
            int i = 0, j = height.size() - 1, maxV = 0;
            while (i < j)
            {
                maxV = max(maxV, min(height[i], height[j]) * (j - i));
                if (height[i] < height[j]) ++i;
                else --j;
            }
            return maxV;
        }
    };
    
  • 相关阅读:
    BZOJ 1191 HNOI2006 超级英雄hero
    BZOJ 2442 Usaco2011 Open 修建草坪
    BZOJ 1812 IOI 2005 riv
    OJ 1159 holiday
    BZOJ 1491 NOI 2007 社交网络
    NOIP2014 D1 T3
    BZOJ 2423 HAOI 2010 最长公共子序列
    LCA模板
    NOIP 2015 D1T2信息传递
    数据结构
  • 原文地址:https://www.cnblogs.com/zzw1024/p/12334022.html
Copyright © 2011-2022 走看看