How to Solve Edit Distance on LeetCode
The Edit Distance problem is a classic dynamic programming challenge, also called Levenshtein Distance.

Problem Statement
Given two strings word1 and word2, return the minimum number of operations required to convert word1 to word2. Allowed operations: insert, delete, replace a character.
Example:
Input: word1 = "horse", word2 = "ros"
Output: 3
Explanation: horse -> rorse (replace), rorse -> rose (delete), rose -> ros (delete)
Why This Problem Matters for Interviews
- Introduces 2D dynamic programming
 - Core for spellcheckers, diff tools, and bioinformatics
 - Teaches optimal substructure and overlapping subproblems
 
Approach to Edit Distance
Dynamic Programming Table (Optimal)
Build a 2D DP table where dp[i][j] is the edit distance between word1[0:i] and word2[0:j].
Time Complexity: O(mn)
Space Complexity: O(mn)
def minDistance(word1, word2):
    m, n = len(word1), len(word2)
    dp = [[0]*(n+1) for _ in range(m+1)]
    for i in range(m+1):
        dp[i][0] = i
    for j in range(n+1):
        dp[0][j] = j
    for i in range(1, m+1):
        for j in range(1, n+1):
            if word1[i-1] == word2[j-1]:
                dp[i][j] = dp[i-1][j-1]
            else:
                dp[i][j] = 1 + min(
                    dp[i-1][j],    # delete
                    dp[i][j-1],    # insert
                    dp[i-1][j-1],  # replace
                )
    return dp[m][n]
Key Interview Talking Points
- Base cases (empty strings)
 - Choices: insert, delete, replace
 - Space optimization (rolling arrays)
 
Big O Complexity Recap
| Approach | Time Complexity | Space Complexity | 
|---|---|---|
| DP Table | O(mn) | O(mn) | 
Pro Interview Tips
- Draw DP grid for short examples
 - Walk through each edit step
 - Know 1D optimization for follow-ups