Post

200+ Problems on Dynamic Programming

Welcome to my Dynamic Programming (DP) Problem Sheet! This is an ever-growing list of DP problems from LeetCode. Dynamic programming is a powerful technique used to solve optimization problems by breaking them down into simpler subproblems and storing their solutions to avoid redundant computations.

About

This collection includes problems categorized into different types of dynamic programming approaches such as linear DP, knapsack, multi-dimensional DP, interval DP, bit DP, digit DP, DP on trees, string DP, probability DP, classic DPs, DP with advanced techniques, and more.

Accessing Solutions

You can find solutions to these problems in the GitHub repository CAlgo/DPSheet.

Disclaimer

Please note that dynamic programming can be a challenging topic, and understanding these problems may require some background knowledge in algorithms and data structures. However, don’t get discouraged! Practice makes perfect, and each solved problem brings you one step closer to becoming proficient in dynamic programming.

Linear DP

Knapsack

Multi Dimensions DP

Bit DP

Digit DP

DP on Trees

String DP

Probability DP

Classic DPs

A. Cadane’s Algorithm

B. LCS

C. LIS

D. 2D Grid Traversal

E. Cumulative Sum

F. Hashmap (SubArray)

DP + Alpha (Tricks/DS)

Insertion DP

Graph DP

Memoization

Binary Lifting

Math

Happy Programming!

This post is licensed under CC BY 4.0 by the author.