11. Container With Most Water
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.
Note: You may not slant the container and n is at least 2.
看题看了半天,翻译了半天才明白~
给一组非负整数 a1,a2,...,an,每一个代表坐标中的一个点(coordinate 坐标,ps我一直以为是合作协作),在坐标系中画n条垂直于x轴的线段,定点为(i, ai), (i, 0),找到两条线,这两条先线与x轴围城一个水桶,这个水桶装水最多。
简单来说就是,
int[] height = {10, 1, 2, 3, 4, 5, 6, 7, 11};
public int maxArea(int[] height) {
int min_i = 1;
int max_i = height.length;
int max_area = 0;
int temp_area = 0;
while(min_i<max_i){
temp_area = (max_i-min_i)*(height[min_i-1]<height[max_i-1]?height[min_i-1]:height[max_i-1]);
if(max_area<temp_area){
max_area = temp_area;
}
if(height[min_i-1]<height[max_i-1]){
min_i++;
}else{
max_i--;
}
}
return max_area;
}