题目
分析
在每一个状态,无论长板或短板收窄一格,都会导致水槽底边宽度-1:
①向内移动短板,短板可能变大,因此水槽面积可能变大
②向内移动长板:短板不变,水槽底边宽度变小,面积一定变小。
所以,应该向内移动短板。
代码
class Solution {
public int maxArea(int[] height) {
int left=0;
int right=height.length-1;
int max=Math.min(height[left],height[right])*(right-left);
while(left<right){
//面积=Math.min(height[left],height[right])*(right-left)
if(height[left]<height[right]){
max=Math.max(max,height[left]*(right-left));
left++;
}
else{
max=Math.max(max,height[right]*(right-left));
right--;
}
}
return max;
}
}
复杂度
时间复杂度O(N)
空间复杂度O(1)