leetcode -eleven: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.

大致意思就是从给定数组中取出任意两个数,作垂直于X轴的直线和X轴组成一个容器,求这个容器装满水最大的可能值。

解法一:直接采用遍历的方法,时间复杂度O(n2),提交上去超时

解法二:从两边往中间遍历,总是移动较小的那个边,时间复杂度O(n)。代码如下:

public class Solution {
    public int maxArea(int[] height) {
        int left=0,right=height.length-1;
        int max=0,w,h,index;
        
        while(left<right){
            w=right-left;
            h=height[left]>height[right]?height[right]:height[left];
            if(max<(w*h))
                max=w*h;
            if(height[left]<height[right]){
                index=left;
                index++;
                while (index<right && height[left]>=height[index])
                    index++;
                left=index;
            }else {
                index=right;
                index--;
                while (index>left && height[right]>=height[index] )
                    index--;
                right=index;
            }
        }
        return max;
    }
}
时间: 2024-10-23 07:47:32

leetcode -eleven:Container With Most Water的相关文章

LeetCode 011 Container With Most Water

[题目] 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 con

【LeetCode】Container With Most Water

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 containe

[LeetCode][JavaScript]Container With Most Water

Container With Most Water 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 wi

LeetCode OJ Container With Most Water 容器的最大装水量

题意:在坐标轴的x轴上的0,1,2,3,4....n处有n+1块木板,长度不一,任两块加上x轴即可构成一个容器,其装水面积为两板的间距与较短板长之积,以vector容器给出一系列值,分别代表在0,1,2,3,4...vector.size()-1共size个短板,是连续的,不排除有板长为0的可能性,但是至少有两块板.根据所给板长,求任两板与x轴所能构成的最大面积并返回. 代码: 1 class Solution { 2 public: 3 int maxArea(vector<int> &am

Leetcode 贪心 container with most water

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie Container With Most Water Total Accepted: 15241 Total Submissions: 48936My Submissions Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertica

leetcode之Container With Most Water 和Trapping Rain Water

Container With Most Water 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 wi

LeetCode 11. Container With Most Water (装最多水的容器)

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 containe

[LeetCode][Python]Container With Most Water

# -*- coding: utf8 -*-'''https://oj.leetcode.com/problems/container-with-most-water/ 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 i

【Leetcode】Container With Most Water in JAVA

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 containe