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.

Solution:
public class Solution {
    public int maxArea(int[] height) {
        //position variables
        int leftlength = 0, rightlength = 0, leftposition = 0, rightposition = height.length-1;
        //volume
        int v = 0;
        while(leftposition < rightposition){
            leftlength = height[leftposition];
            rightlength = height[rightposition];
            v = Math.max(v, Math.min(leftlength, rightlength)*(rightposition-leftposition));
            if(leftlength<rightlength){
              leftposition++; 
            }
            else{
              rightposition--;
            }
        }
        return v;
    }
}

results matching ""

    No results matching ""