LeetCode 1027最長等差数列LeetCode 300最長サブシーケンス/ 354ロシア人形の封筒を増やします

我々はそれがデフ算術シーケンスであるかどうかを判断するために、レコードを持っているので、DPの問題は、DP 1次元ではありません。

DP [I] [差分]算術最大長の差分として、末尾にA [I]で表されます。ビューと現在のタイトルのこの時点から  LeetCode 300最長増加部分列/ 354ロシアの人形封筒は 非常に似ています。

クラス解決{
 パブリックint型 longestArithSeqLength(ベクトル< INT >&A){
         int型 N = A.size()。
        もし(N <= 1リターンN。
        ベクター <unordered_map < INTINT >> DP(N)
        int型のres = 0 ;
        以下のためにint型 i = 0 ; iがn <; ++ I){
             ためのint型 J = 0 ; J <I; ++ J){
                 int型差分= A [I] - [J]。
                もし(DP [J] .count(差分))
                    DP [I] [差分] = MAX(DP [I] [差分]、DP [J] [差分] + 1 )。
                他の
                    DP [i]の[差分] = 2 ; 
                RES = MAX(RES、DP [I] [差分])。
            } 
        } 
        戻りRES。
    } 
}。

 

おすすめ

転載: www.cnblogs.com/hankunyan/p/11456719.html