首页 > 其他 > 详细

【LeetCode】Container With Most Water

时间:2014-05-16 19:38:44      阅读:381      评论:0      收藏:0      [点我收藏+]

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.

从两边向中间考虑时,乘水的面积是由(两端较小的高度)×(两个板之间的宽度)决定的。记录最开始的乘水面积为ans1,然后L向右运动,R向左运动,截止条件是L >= R,并且记录乘水的面积ans,取最大值
 
以L向左运动为例,当宽度减小时,如果面积变大,必然高度要增加,因此L只需取比前一个L大的值即可,初始L的高度为L1。R向右运动同理
 
bubuko.com,布布扣
public class Solution {  
    public int maxArea(int[] height) {
        if(height.length<2)
            return 0;
        int re=0;
        int j=height.length-1;
        int i=0;
        while(j>i){
            if(height[i]>=height[j]){
                int area = height[j]*(j-i);
                if(area>re)
                    re=area;
                j--;
                continue;
            }else{
                int area=height[i]*(j-i);
                if(area>re)
                    re=area;
                i++;
                continue;
            }
        }
        return re;  
         
  
    }  
}  
bubuko.com,布布扣

 

 

【LeetCode】Container With Most Water,布布扣,bubuko.com

【LeetCode】Container With Most Water

原文:http://www.cnblogs.com/yixianyixian/p/3725486.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!