Skip to content

Latest commit

 

History

History
49 lines (33 loc) · 930 Bytes

File metadata and controls

49 lines (33 loc) · 930 Bytes

Edit Distance

Problem Link

https://leetcode.com/problems/edit-distance/


Pattern

  • String DP

Approach

Build a 2D DP table where each state stores the minimum edits needed to convert one prefix into another.


Time Complexity

O(mn)

Space Complexity

O(mn)


Java Solution

class Solution {
    public int minDistance(String word1, String word2) {
        int m = word1.length(), n = word2.length();
        int[][] dp = new int[m + 1][n + 1];
        for (int i = 0; i <= m; i++) dp[i][0] = i;
        for (int j = 0; j <= n; j++) dp[0][j] = j;
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                if (word1.charAt(i - 1) == word2.charAt(j - 1)) dp[i][j] = dp[i - 1][j - 1];
                else dp[i][j] = 1 + Math.min(dp[i - 1][j - 1], Math.min(dp[i - 1][j], dp[i][j - 1]));
            }
        }
        return dp[m][n];
    }
}