码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode 11] Container With Most Water

时间:2015-03-28 08:59:02      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:java   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 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

标签:java   leetcode   算法   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!