public int maxArea_wrong(int[] height) {

    if (height.length < 2) {
      return 0;
    }

    // This is actually not correct thought
    // need some smart to work this out!
    int len = height.length;
    int leftH = height[0];
    int leftHIdx = 0;
    int rightH = height[len - 1];
    int rightHIdx = len - 1;
    int max = Math.min(leftH, rightH) * (len - 1);

    int i = 1, j = len - 2;
    while (i < j) {
      while (i < j && height[i] <= leftH) {
        i++;
      }
      if (i < j) {
        leftH = height[i];
        leftHIdx = i;
      }
      while (i < j && height[j] <= rightH) {
        j--;
      }
      if (i < j) {
        rightH = height[j];
        rightHIdx = j;
      }
      int temp = Math.min(leftH, rightH) * (rightHIdx - leftHIdx);
      if (temp > max) {
        max = temp;
      }
    }

    return max;
  }