LintCode:M-装最多水的容器

xiaoxiao2021-02-28  151

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; } }

转载请注明原文地址: https://www.6miu.com/read-19922.html

最新回复(0)