思路
双向双指针遍历,每次进行面积的比较即可。考虑什么时候移动左指针和右指针,因为在计算面积的时候,高度是取两者的最小的,所以我们移动两个指针中最小的即可。
代码
class Solution {
public int maxArea(int[] h) {
int ans = Integer.MIN_VALUE;
int n = h.length;
for (int l = 0, r = n - 1; l < r; l++) {
int min = Math.min(h[l], h[r]);
ans = Math.max(ans, min * (r - l));
if (min == h[r]) {
r--;
l--;
}
}
return ans;
}
}