Here, I have a collection of small projects practicing dynamic programming (DP) specifically, the move from plain recursion to memoization (top-down DP) and tabulation (bottom-up DP).
The idea behind DP: Plain recursion often re-solves the same sub-problem many times over. DP fixes this by solving each sub-problem only once, either by caching results as ours recurse (memoization) or by building up results iteratively from the base case (tabulation).
- Fibonacci — Computing the nth Fibonacci number
- GridTraveller — Counting unique paths through a grid moving only right or down
- SumwithNumbers — Checking and constructing combinations of numbers that sum to a target
- Wordplay — Checking and constructing combinations of words that build a target string
Each folder has its own README with the specific files and approaches used.