File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @param {string } word1
3+ * @param {string } word2
4+ * @return {number }
5+ */
6+ function minDistance ( word1 , word2 ) {
7+ const len1 = word1 . length ;
8+ const len2 = word2 . length ;
9+
10+ if ( ! len1 || ! len2 ) {
11+ return len1 || len2 ;
12+ }
13+
14+ const dp = new Array ( len1 + 1 ) . fill ( )
15+ . map ( ( ) => new Array ( len2 + 1 ) ) ;
16+
17+ for ( let i = 0 ; i <= len1 ; ++ i ) {
18+ dp [ i ] [ 0 ] = i ;
19+ }
20+ for ( let i = 0 ; i <= len2 ; ++ i ) {
21+ dp [ 0 ] [ i ] = i ;
22+ }
23+
24+ for ( let i = 1 ; i <= len1 ; ++ i ) {
25+ for ( let j = 1 ; j <= len2 ; ++ j ) {
26+ const a = dp [ i - 1 ] [ j ] + 1 ;
27+ const b = dp [ i ] [ j - 1 ] + 1 ;
28+ const c = word1 [ i - 1 ] === word2 [ j - 1 ]
29+ ? dp [ i - 1 ] [ j - 1 ]
30+ : dp [ i - 1 ] [ j - 1 ] + 1 ;
31+ dp [ i ] [ j ] = Math . min ( a , b , c ) ;
32+ }
33+ }
34+
35+ return dp [ len1 ] [ len2 ] ;
36+ }
You can’t perform that action at this time.
0 commit comments