[ダイナミックプログラミング]は72の編集距離をleetcode

問題:https://leetcode.com/problems/edit-distance/

        二次元の登山階段。代表的なDP [I] [J] WORD1長とWORD2変換の最小長さIのJ。DP [I] [j]を形成することができるDP [I]、[J - 1]またはDP [I - 1] [J - 1]得られた数は、DPから作ることができるプラス[iが - 1] [J - 1]プラス交換の数を得た(最後の2桁が等しい場合、それは置換されていません)

クラス解決{
 パブリックINT minDistance(文字列 WORD1、ストリングWORD2){
         int型、M = word1.size()。
        INT、N = word2.size()。
        ベクター <ベクトル< INT >> DP(M + 1、ベクトル< INT >(N + 1 ))。
        以下のためにint型 iは= 0 ; I <= M iは++ 
        { 
            DPを[I] [ 0 ] = I。
        } 
        のためのINT J = 0; J <= N。J ++ 
        { 
            DP [ 0 ] [J] = J。

        } 

        のためのint型 I = 0 ;私がm <; Iは++ 
        { 
            ためINT J = 0 ; J <nであり、j ++ 
            { 
                DP [I + 1 ] [j + 1 ] =分(分(DP [I + 1 ] [J]、DP [I]、[J + 1 ])+ 1、DP [I] [J] +(WORD1 [I] == WORD2 [J]?01 ))。
            } 
        } 
        リターンDP [M] [N]。
    } 
}。

 

おすすめ

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