11. 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.

two pointers.

public class Solution {
    public int maxArea(int[] height) {
        if(height == null || height.length <= 1)return 0;
        int i =0, j = height.length-1;
        int max = 0;
        while(i<j){
            max = Math.max(max, (j-i) * Math.min(height[i], height[j]));
            if( height[i] > height[j]){
                j--;
            }else{
                i++;
            }
        }
        return max;
    }
}

results matching ""

    No results matching ""