题目: 代码(首刷自解 2024年2月29日): class Solution { public: // 动态规划 好像和找最长公共子序列一样? int minDistance(string word1, string word2) { int sz1 = word1.size(); int sz2 = word2.size(); // dp init vector<vector<int>> dp(sz1 + 1,vector<int>(sz2 + 1, 0)); for (int i = 0; i <= sz1; ++i) dp[i][0] = i; for (int i = 0; i <= sz2; ++i) dp[0][i] = i; // 遍历 递推公式 for (int i = 1; i <= sz1; ++i) { for (int j = 1; j <= sz2; ++j) { if (word1[i - 1] == word2[j - 1]) dp[i][j] = dp[i - 1][j - 1]; else dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + 1; } } return dp[sz1][sz2]; } };