// S = min(a, b) * (j - i)
// j-i一直变小! a,b里面 移动大的一边, min(a, b)可能变小或不变! 移动小的一边, min(a, b)可能变小或变大!
// 所以只需要 一直移动小的一边!
class Solution { public: int maxArea(vector<int>& height) { int area = 0; if (height.size() == 0){ return area; } int j = height.size() -1; int i = 0; int a = height[i]; int b = height[j]; int s = 0; while(i < j){ if (a<b){ s = a *(j-i); i++; a = height[i]; }else{ s = b *(j-i); j--; b = height[j]; } if (s>area){ area = s; } } return area; } };