题目链接:
LeetCode 11—Container With Most Water
本题是一个很容易想到的贪心思路,采用两个指针分别指向数组头、尾,每次移动短的那一边即可覆盖全部可能情况。
其实现代码如下:
public class Problem11 {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public static int maxArea(int[] height) {
int i=0,j=height.length-1;
int max=Math.min(height[i], height[j])*(height.length-1);
while(i!=j){
if(height[i]<=height[j]){
i++;
if(height[i]<=height[i-1])
continue;
}
else{
j--;
if(height[j]<=height[j+1])
continue;
}
max=Math.max(max, (j-i)*Math.min(height[i], height[j]));
}
return max;
}
}