問題: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]?0:1 ))。 } } リターンDP [M] [N]。 } }。