Monday, February 3, 2014

Leetcode: 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.

Solution:

public class Solution {
    public int maxArea(int[] height) {
        if (height.length==0)
            return 0;
        int maxArea = 0;
        int base = height.length;
        int start = 0;
        int end = height.length-1;
        while(start<end)
        {
            int area = (end-start)*Math.min(height[end], height[start]);
            maxArea = maxArea < area ? area : maxArea;
            if(height[end] > height[start])
                start++;
            else
                end--;
        }
        return maxArea;
    }
}

No comments :

Post a Comment