/**
* @param {string} word1
* @param {string} word2
* @return {number}
*/
var minDistance = function (word1, word2) {
if(word1==''||word2=='') return Math.max(word1.length,word2.length)
let dp=new Array(word1.length+1).fill().map((_,i)=>i)
for(let i=1;i<=word2.length;i++){
let pre=i-1
dp[0]=i
for(let j=1;j<=word1.length;j++){
let temp=dp[j]
dp[j]=word1[j-1]==word2[i-1]?pre:Math.min(pre,dp[j-1],dp[j])+1
pre=temp
}
}
return dp[word1.length]
};
注意每次循环之前需要对let pre=i-1 dp[0]=i手动赋值。