暴力...
class Solution {
public int maxArea(int[] height) {
int max = 0;
for (int i = 0; i < height.length - 1; i++) {
for (int j = i + 1; j < height.length; j++) {
max = Math.max(max, (j - i) * Math.min(height[i], height[j]));
}
}
return max;
}
}
双指针 O(n)
class Solution {
public int maxArea(int[] height) {
int i = 0, j = height.length - 1, max = 0;
while (i < j) {
max = Math.max(max, (j - i) * Math.min(height[i], height[j]));
if (height[i] < height[j]) {
i++;
} else {
j--;
}
}
return max;
}
public int maxArea2(int[] a) {
int max = 0;
for(int i = 0, j = a.length - 1; i < j ; ){
int h = a[i] < a[j] ? a[i++] : a[j--];
max = Math.max(max, (j - i + 1) * h);
}
return max;
}
}