思路:一开始是时间复杂度为O()的暴力,结果超时了。那就双指针,从两头往中间逼近。
我的代码:
class Solution {
public int maxArea(int[] height) {
int left=0,right=height.length-1;
int area=0,maxArea=0;
while(right>left){
area = (right-left)*Integer.min(height[left], height[right]);
maxArea = Integer.max(maxArea,area);
if(height[left]<height[right]){
left++;
}else{
right--;
}
}
return maxArea;
}
}
运行结果