Loading…
Every dynamic programming problem we index, grouped by the curriculum module that teaches its pattern. Each problem ships with multiple approaches, complexity analysis, and a line-by-line walkthrough in Java and Python.
Grouped by curriculum module
Dynamic Programming guide
Overview
Dynamic Programming is the art of trading memory for time by reusing overlapping subproblems, and it shows up very frequently in technical interviews. DP questions test whether you can define a state, write the recurrence, and decide between memoisation and tabulation.
Our library indexes 43 Dynamic Programming problems (1 easy, 37 medium, 5 hard), each solved brute-force → optimal in Java and Python with a line-by-line walkthrough and interview talking points. They're grouped below by the curriculum module that teaches the underlying pattern, so related problems reinforce one another.
If you remember one thing about Dynamic Programming, make it this: Define the state precisely (what does dp[i] mean?) and the transition writes itself. Once that clicks, the signature patterns — 1-D DP, 2-D DP, knapsack, DP on subsequences/intervals — start to feel like a checklist you run on every new problem.
Study playbook
Common pitfalls
Frequently asked
Keep exploring