首页 > 其他 > 详细

[LeetCode 11] Container With Most Water

时间:2015-03-28 08:55:47      阅读:280      评论:0      收藏:0      [点我收藏+]

题目链接: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 container, 
		such that the container contains the most water.
		
		Note: You may not slant the container.
 *
 */

public class ContainerWithMostWater {

	
//	45 / 45 test cases passed.
//	Status: Accepted
//	Runtime: 256 ms
//	Submitted: 0 minutes ago

	//时间复杂度O(n) 空间复杂度O(1)
	static int maxArea(int[] height) {
		int left = 0;
		int right = height.length - 1;
		int max = 0;
		while(left < right) {
			int area = Math.min(height[left], height[right]) * (right - left);
			max = Math.max(max, area);
			if(height[left] <= height[right]) {
				left ++;
			} else {
				right -- ;
			}
		}
		return max;
	}
	public static void main(String[] args) {
		System.out.println(maxArea(new int[]{2, 0, 2}));
	}

}


[LeetCode 11] Container With Most Water

原文:http://blog.csdn.net/ever223/article/details/44682635

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