lc11.java 890 字节
Newer Older
L
liu13 已提交
1 2 3 4 5 6
package code;
/*
 * 11. Container With Most Water
 * 题意:数组下标代表横坐标,数组中的值代表纵坐标,求最大面积
 * 难度:Medium
 * 分类:Array, Two Pointers
L
liu13 已提交
7
 * Tips:复杂度可以为O(N), 指针往里走, 若值也小了,则面积一定不会增大。和lc42做比较
L
liu13 已提交
8
 *      lc11, lc42, lc84
L
liu13 已提交
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
 */
public class lc11 {
    public static void main(String[] args) {
        int[] arr = {1,8,6,2,5,4,8,3,7};
        System.out.println(maxArea(arr));
    }

    public static int maxArea(int[] height) {
        int left = 0;
        int right = height.length-1;
        int result = 0;
        while(left<right){
            result = Math.max( result, Math.min(height[left],height[right])*(right-left) );
            if(height[left]<height[right])
                left++;
            else
                right--;
        }
        return result;
    }
}