1. 程式人生 > >leetcode練習(2)

leetcode練習(2)

Container With Most Water
題意:在二維座標系中,(i, ai) 表示 從 (i, 0) 到 (i, ai) 的一條線段,任意兩條這樣的線段和 x 軸組成一個木桶,找出能夠盛水最多的木桶,返回其容積。

程式碼:

    int l = 0 ;
    int r = height.length-1;
    int max = 0;
    
    int h = 0;
    int s ;
    while( l < r)
    {
         h = (height[l] < height[r]) ? height[l]:height[r];
        s = h*(r-l);
        max = max > s ? max : s;
        if(height[l] > height[r])
            r--;
        else
            l++;
       
    }
    return max;

時間複雜度o(n),空間複雜度o(1)