LintCode链接
给定 n 个非负整数 a1, a2, ..., an, 每个数代表了坐标中的一个点 (i, ai)。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)和(i, 0)。找到两条线,使得其与 x 轴共同构成一个容器,以容纳最多水。
容器不可倾斜。
您在真实的面试中是否遇到过这个题? Yes 样例给出[1,3,2], 最大的储水面积是2.
标签 数组 两根指针 public class Solution { /* * @param heights: a vector of integers * @return: an integer */ public int maxArea(int[] heights) { int n=heights.length; if(n==0) return 0; int max=Integer.MIN_VALUE; int i=0, j=n-1; while(i<j){ max = Math.max(max, Math.min(heights[i],heights[j])*(j-i)); if(heights[i]>heights[j]) j--; else i++; } return max; } }