/*
失败 超时o(n^2) 的时间复杂度;
两层for循环 遍历数组 heigh小的 * x轴的差值 大的数储存在ans中;
class Solution {
public int maxArea(int[] height) {
if(height.length < 2) return 0;
int ans = 0;
for(int i = 0; i < height.length - 1; i++) {
for(int j = i + 1; j < height.length; j++) {
ans = Math.max(ans, (j - i) * Math.min(height[i], height[j]));
}
}
return ans;
}
}
*/
//思路是 x轴确定了宽度 y轴决定了高度;
//两个指针 一个从头开始 一个从尾开始 从y轴来看 决定水体面积的是短的一端 所以移动短的一端可以得到最后的答案。
class Solution {
public int maxArea(int[] height) {
if(height.length < 2) return 0;
int ans = 0;
int start = 0;
int end = height.length - 1;
while(start < end) {
ans = Math.max(ans, (end - start) * Math.min(height[start], height[end]));
if(height[start] < height[end]) {
start++;
}else {
end--;
}
}
return ans;
}
}