[動的計画は] 354枚のロシアの人形封筒をleetcode

問題:https://leetcode.com/problems/russian-doll-envelopes/

        問題の最長の連続したサブタイプ。ソートするには、DP [i]は人形の最大数i番目を使用してレコード。

BOOL CMP(constのベクトル< INT >・X、CONSTベクトル< INT >&Y)
{ 
    戻り X [ 0 ] == Y [ 0 ]?X [ 1 ] <Y [ 1 ]、X [ 0 ] <Y [ 0 ]。
} 
クラスソリューション{
 パブリック

    INT maxEnvelopes(ベクトル<ベクトル< INT >>&封筒){ 
        ソート(envelopes.begin()、envelopes.end()、CMP)。
        INT、N = envelopes.size()。
        もし(!n)のリターン 0; 
        ベクター < INT > DP(N、1 )。
        int型のres = 0 ;
        int型 i = 0 ; iがN <; Iは++ 
        { 
            ためINT J = 0 ; J <I、J ++ 
            { 
                場合(封筒[j] [ 0 ] ==封筒[I] [ 0 ])ブレークもし(封筒[I] [ 1 ]>封筒[J] [ 1 ])
                { 
                    DP [I]= MAX(DP [I]、DP [J] + 1 )。
                } 
            } 
            RES = MAX(DP [i]は、RES)。
        } 
        戻りRESと、
    } 
}。

 

おすすめ

転載: www.cnblogs.com/fish1996/p/11332509.html