在这里插入图片描述
我们将定义左右两个指针,比如图中,最初是1*8,想要使盛水变大,在改变宽度的情况下,只有让短的柱子进行移动。

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

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐