水leetcodeまでの11の注意が充填された容器

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

注:あなたは、コンテナを傾けることができない、とnの値が2以上です。
ここに画像を挿入説明
私たちは、問題が非常に不思議な慣行、ダブルポインタ方式を参照してください行います。

これは、2つのポインタが頭と尾ですし、最初のストレージ容量MAX_Aを計算指し
、2つのバッフル内のポインタの遺骨は、ストレージ容量を拡張することができた場合、それは短いシャッター指し示すポインタを移動する必要があります!ポインタが唯一の可能長くバッフルを移動するための水を減らすために!

class Solution {
public:
int maxArea(vector<int>& height) {
    int max_a = 0;
    int i = 0;
    int j = height.size() - 1;
    while (i < j) {
        int area = (j - i) * min(height[i], height[j]);
        max_a = max(max_a, area);
        if (height[i] < height[j]) {
            i++;
        }
        else {
            j--;
        }
    }
    return max_a;
}
};

リリース9件のオリジナルの記事 ウォンの賞賛1 ビュー151

おすすめ

転載: blog.csdn.net/qq_37782336/article/details/104903224