mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 04:06:51 +08:00
@ -198,7 +198,32 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
Java:
|
Java:
|
||||||
|
```java
|
||||||
|
public int minDistance(String word1, String word2) {
|
||||||
|
int m = word1.length();
|
||||||
|
int n = word2.length();
|
||||||
|
int[][] dp = new int[m + 1][n + 1];
|
||||||
|
// 初始化
|
||||||
|
for (int i = 1; i <= m; i++) {
|
||||||
|
dp[i][0] = i;
|
||||||
|
}
|
||||||
|
for (int j = 1; j <= n; j++) {
|
||||||
|
dp[0][j] = j;
|
||||||
|
}
|
||||||
|
for (int i = 1; i <= m; i++) {
|
||||||
|
for (int j = 1; j <= n; j++) {
|
||||||
|
// 因为dp数组有效位从1开始
|
||||||
|
// 所以当前遍历到的字符串的位置为i-1 | j-1
|
||||||
|
if (word1.charAt(i - 1) == word2.charAt(j - 1)) {
|
||||||
|
dp[i][j] = dp[i - 1][j - 1];
|
||||||
|
} else {
|
||||||
|
dp[i][j] = Math.min(Math.min(dp[i - 1][j - 1], dp[i][j - 1]), dp[i - 1][j]) + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dp[m][n];
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Python:
|
Python:
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user