Container With Most Water
Total Accepted: 82889
Total Submissions: 236099
Difficulty: Medium
Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.
public class Solution{
public int containerWater(int[] attr){
int max=0;
int lo=0;
int le=attr.length()-1
while(lo<le){
int start=attr[lo];
int end=attr[le];
tmp=(le-lo)*(start>end?start:end);
max=tmp>max?tmp:max;
if(start>end){
while(lo<le&&attr[lo]<start) ++lo;
}
else{
while(lo<le&&attr[le]<end) --le;
}
}
return max;
}
}