双指针
1. 计算当前左右指针所夹面积
2. 如果lH <= rH, 
   移动左指针,直到指针所指的高度比之前lH高 (宽变短了, 所以高必须变高才可能面积更大)
3. 如果lH > rH同理。
   移动右指针,直到指针所指的高度比之前rH高

import java.util.*;

public class Solution {
  public int maxArea (int[] height) {
    if (height.length < 2) return 0;
    
    int l = 0, r = height.length-1;
    int maxV = 0;
    
    while (l < r) {
      int lH = height[l], rH = height[r]; 
      int curV = Math.min(lH, rH) * (r-l);
      maxV = Math.max(maxV, curV);
      
      if (lH <= rH) {
        // find next higher left bar
        while (l < r && height[l] <= lH) {
          l++;
        }
      } else {
        // find next higher right bar
        while (l < r && height[r] <= rH) {
          r--;
        }
      }
    }
    
    return maxV;
  }
}