一:题目
二:上码
// class Solution {
// public int maxArea(int[] height) {
// int len = height.length;
// int ans = 0;// for (int i = 0; i < len; i++) {
// for (int j = len - 1; j >= i; j--) {// int x = j - i;
// int y = Math.min(height[i],height[j]);
// ans = Math.max(ans,x*y);
// }
// }// return ans;
// }
// }/**思路:1. S(面积) = min(h[i],h[j]) * (j-i) (每次都是短板*(j-i))2.双指针那么我们如何移动指针呢 1>:如果移动短板 那么 我们的面积可能增大 因为可能会遇见更长的班2>:如果移动长板 那么 我们的面积不变或者变小 因为可能遇见长板 但最短的板不变 面积不变可能遇见短板 那么面积更小3>:所以的话 我们每次移动短板*/ class Solution {public int maxArea(int[] height) {int len = height.length;int ans = 0;int i = 0;int j = len - 1; while (i < j) {ans = Math.max(ans,Math.min(height[i],height[j])*(j-i));if (height[i] > height[j]) j--;else i++;}return ans;}
}