11. 盛最多水的容器

题目:

思路:

【1】双指针思路

代码展示:

//时间4 ms击败58.43%
//内存51.3 MB击败74.56%
//采用双指针的方式
//本质上装水容量的大小取决于两边最小的短板乘上他们之间的距离
//如果移动短板的话有可能容量变多或者变少
//但是如果移动长板那么必然就是容量变少
class Solution {
    public int maxArea(int[] height) {
        int left = 0;
        int right = height.length - 1;
        int res = 0;
        int lowHeight = 0;
        while (left < right){
            lowHeight = Math.min(height[left],height[right]);
            res = Math.max(res,((right-left)*lowHeight));
            if (lowHeight == height[left]){
                left++;
            }else {
                right--;
            }
        }
        return res;
    }
}

 

posted @ 2023-02-03 12:21  忧愁的chafry  阅读(12)  评论(0编辑  收藏  举报