11. Container With Most Water

2017-11-24  本文已影响0人  larrymusk

左右指针夹逼,以最小高度为高,宽度(end-start)算出矩形面积,并和最大值比较,算出最大值。
哪边高度矮就向中心方向走一步

#define min(a,b) (a<b?a:b)
#define max(a,b) (a>b?a:b)

int maxArea(int* height, int heightSize) {
    int l = 0;
    int r = heightSize-1;
    int maximum = INT_MIN;
    while(l<r){
        int tmp = min(height[l],height[r])*(r-l);
        maximum = max(maximum, tmp);
        
        if(height[l] < height[r])
            l++;
        else
            r--;
    }
    
    return maximum;
}
上一篇 下一篇

猜你喜欢

热点阅读