What is dynamic programming?

Dynamic programming (DP) problems exhibit two characteristics:

Good reads

Practice problems

Well-known DP problems