Skip to content

Commit 06f3931

Browse files
committed
Added JS solution for problem 72
1 parent 8504ff8 commit 06f3931

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

javascript/72-Edit-Distance.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
}

0 commit comments

Comments
 (0)