【LeetCode 11。水充填容器(ダブルポインタ)

タイトル

所与のn非負整数A1、A2、...、点(I、AI)各座標の数を表します。垂直座標内の動画n行、私は2つのエンドポイントは、(i、AI)及び(I、0)は垂直線です。x軸の構成は、水を収容できるように一緒に容器を有する2本のラインを見つけます。

問題の解決策

ダブルポインタ、シフト内側短辺の各々(なぜなら今高い面積=低い高さ、長さと最長であり、この場合には最大面積を短く境界なるように)、および最大面積を維持します。

コード

class Solution {
    public int maxArea(int[] height) {
        if(height==null||height.length<2){
            return 0;
        }
        
        int maxArea=0;
        int l=0;
        int r=height.length-1;
        while(l<r){
            int area=Math.min(height[l],height[r])*(r-l);
            maxArea=area>maxArea?area:maxArea;
            if(height[l]<height[r]){
                ++l;
            }
            else{
                --r;
            }
        }
        return maxArea;
    }
}

おすすめ

転載: www.cnblogs.com/coding-gaga/p/11279425.html