The idea is to loop the array, from both side to middle.
public class Solution {
public int maxArea(int[] height) {
if(height == null || height.length < 2){
return 0;
}
int begin = 0;
int end = height.length - 1;
int curMax = 0;
while(begin < end){
if(curMax < (end - begin) * (height[end] > height[begin]?height[begin]:height[end])){
curMax = (end - begin) * (height[end] > height[begin]?height[begin]:height[end]);
}
if(height[begin] < height[end]){
begin++;
}else{
end--;
}
}
return curMax;
}
}
没有评论:
发表评论