Dynamic Programming

Go to Problems
  • Dynamic Programming (commonly referred to as DP) is an algorithmic technique for solving a problem by recursively breaking it down into simpler subproblems and using the fact that the optimal solution to the overall problem depends upon the optimal solution to it’s individual subproblems.
  • The technique was developed by Richard Bellman in the 1950s.
  • DP algorithm solves each subproblem just once and then remembers its answer, thereby avoiding re-computation of the answer for similar subproblem every time.
  • It is the most powerful design technique for solving optimization related problems.
  • It also gives us a life lesson - Make life less complex. There is no such thing as big problem in life. Even if it appears big, it can be solved by breaking into smaller problems and then solving each optimally. Learn More.

Serious about Learning Programming ?

Learn this and a lot more with Scaler Academy's industry vetted curriculum which covers Data Structures & Algorithms in depth.

Dynamic Programming Problems

Greedy or dp
Problem Score Companies Time Status
Tushar's Birthday Bombs 200
80:45
Jump Game Array 225 41:16
Min Jumps Array 300 71:56
Tree dp
Problem Score Companies Time Status
Max edge queries! 200 57:17
Max Sum Path in Binary Tree 400 55:23
Suffix / prefix dp
Derived dp
Problem Score Companies Time Status
Chain of Pairs 200 44:13
Max Sum Without Adjacent Elements 225 58:16
Merge elements 300 64:33
Knapsack
Problem Score Companies Time Status
Flip Array 200
81:38
Tushar's Birthday Party 200 73:01
0-1 Knapsack 200 49:12
Equal Average Partition 350 75:22
Dp
Problem Score Companies Time Status
Potions 200 52:31
Adhoc
Problem Score Companies Time Status
Best Time to Buy and Sell Stocks II 225 40:18
Dp optimized backtrack
Problem Score Companies Time Status
Word Break II 350
IBM
69:00
Multiply dp
Problem Score Companies Time Status
Unique Binary Search Trees II 400 36:30
Count Permutations of BST 400
60:04
Breaking words
Problem Score Companies Time Status
Palindrome Partitioning II 400 63:00
Word Break 400
IBM
68:20
lock
Topic Bonus
Bonus will be unlocked after solving min. 1 problem from each bucket