美文网首页
11. Container With Most Water

11. Container With Most Water

作者: 夏臻Rock | 来源:发表于2017-12-26 16:53 被阅读0次
题目
解析:

把数组下标作为横坐标点,该点上的高度即为数组该位置的数值。要求根据两点和其高度围成的容器的最大容水量(容水量肯定根据短的那条边来计算)

思路:

从左右两边向中间靠拢,每一步计算当前的矩形面积(以两点间距为长,以较矮数值为高),保留最大矩形面积即为最大容水量。

算法:
class Solution {
    public int maxArea(int[] height) {
        int maxArea = 0;
        int left =0; //左边的边
        int right = height.length-1;//右边的边
        while(left<right){
            int S = (Math.min(height[left],height[right]))*(right-left);//求出矩形的面积(长为两点间距,高为最短边的长度。)
            maxArea = maxArea>=S?maxArea:S;//最大面积
            if(height[left]<height[right]){
                left++;
            }else{
                right--;
            }
            
        }
        return maxArea;
    }
}

相关文章

网友评论

      本文标题:11. Container With Most Water

      本文链接:https://www.haomeiwen.com/subject/mijjgxtx.html