トリプルシーケンスLeetCode 334増分のJava実装

334インクリメンタル三元シーケンス

ソートされていない配列を指定し、配列は、3の増加サブシーケンス長が存在するか否かが判定されます。

以下のように数学的な表現は、次のとおりです。

例えば、I、J、K、そして満足がある場合0≤I <J <K≤ N-1、
ARR [I] <ARR [Jよう ] <ARR [k]が、 真戻り、そうでなければ偽を返します。
説明:アルゴリズムの複雑さの時間要件はO(N)であり、空間的な複雑さはO(1)です。

例1:

入力:[1,2,3,4,5]
出力:真の
例2:

入力:[5,4,3,2,1]
出力:偽

class Solution {
      public boolean increasingTriplet(int[] nums) {
        if (nums==null||nums.length<3) return false;
        int big=Integer.MAX_VALUE,small=Integer.MAX_VALUE;
        for (int i:nums){
            // 通过if的结构保证递增!
            if (i<=small) small=i;
            // 走到这一步说明这个值大于前面的值(i>small)
            else if (i<=big) big=i;
            // 走到这一步说明这个值大于前面的两个值(i>big>small)
            else return true;
        }
        return false;
    }
}
リリース1446元の記事 ウォンの賞賛10000 + ビュー167万+

おすすめ

転載: blog.csdn.net/a1439775520/article/details/104719768