zoukankan      html  css  js  c++  java
  • [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.

    本题依次寻找左右两端的高度围成的最多的水,然后移动最矮的一边高度。时间:38ms。我的代码:

    class Solution {
    public:
        int maxArea(vector<int> &height) {
            int capability = 0;
            size_t left = 0, right = height.size() - 1;
        
            while (left < right){
                const int water = min(height[left], height[right]) * (right - left);
                if (water > capability) 
                    capability = water;
                if (height[left] < height[right])
                    ++left;
                else
                    --right;
            }
            return capability;
        }
    };
    “If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime.”
  • 相关阅读:
    奇偶数排序
    买房子
    首字母大写
    学分绩点
    加减乘除
    最简真分数
    Hdu 1058 Humble Numbers
    Hdu 1032 The 3n + 1 problem
    Hdu 1040 As Easy As A+B
    Hdu 1025 Constructing Roads In JGShining's Kingdom
  • 原文地址:https://www.cnblogs.com/Scorpio989/p/4433560.html
Copyright © 2011-2022 走看看