We use cookies for site analytics. Accept to help us understand how the site is used. See our Privacy Policy for details.
A medium dynamic programming problem, graded against 4 test cases (2 of them hidden).
Overlapping subproblems solved once and reused - the pattern candidates fear most.
Reach for it when you see: "Number of ways", "minimum/maximum cost", or a recursion that recomputes the same state.
More Dynamic Programmingproblems →Classic 2-D DP. `dp[i][j]` is the LCS of `text1[:i]` and `text2[:j]`. If the last characters match, `dp[i][j] = dp[i-1][j-1] + 1`; otherwise `max(dp[i-1][j], dp[i][j-1])`.
Time: O(m·n). Space: O(m·n).
The full reference solution in every supported language stays in the editor above - reveal it there once you have had a real attempt.
These apply to the pattern as a whole, not just this problem.