# Top 25 Dynamic Programming Interview Questions for Interviews

Hello guys, if you are preparing for tech interview or any Java developer interview then apart from preparing for Data Structure and Algorithms, and System Design, you should also prepare for Dynamic Programming questions. Dynamic programming or DP is a technique to solve a problem by breaking a big program into small sub-problem and then combining the result. It's very similar to Recursion and that's why Recursion also plays an important role in solving Dynamic programming questions.  When it comes to Interview, DP is one of the toughest topic to master.

I have personally struggled in DP problems during interviews particularly when I haven't practiced them. It took a couple of interview failure for me to realize the importance of Dynamic programming and investing time and effort into it.

One of the biggest hurdle in solving Dynamic programming question is figuring out that its actually a DP based problem. This is not an easy task and it takes a lot of practice to develop that coding sense which can identify Dynamic programming questions.

Once you know, you can apply recursion and other techniques which are used to solve Dynamic programming questions on Interviews. In most cases, even if you practice, its not possible to solve problems like Knapsack or different ways to climb a stair but if you speak up about your solution, think aloud then interviewer will give you benefit of doubt.

Anyway, nothing beats practice and that's why I am sharing 25 popular Dynamic programming questions for interviews. Most of them have already been asked on interviews and you may have seen them already, particularly the Nth Fibonacci number,.

You may be surprise that how come a simple question like Fibonacci is a DP based problem but its true. It's the most basic Dynamic programming question and often taught in various Dynamic programming courses to kick off the Dynamic programming session.

## 25 Dynamic Programming Interview Questions for Java Developers

Without any further delay, here is a list of my favorite and popular Dynamic programming questions from interviews:

1. How to calculate the Nth Fibonacci Number in Java, Python or JavaScript? (solution)

2. How to calculate maximum subarray sum?

3. How to solve Word Break Problem in Java?

4. Find out total number of possible Binary Search Trees with 'n' keys?

5. How to solve Subset Sum Problem in Java?

6. How to find the Shortest Palindrome in Java?

7. How to solve Palindrome Min Cut problem in Java

8. How to find minimum number of trials to reach from source word to destination word

9. How to find minimum number of coins to make change (coin change problem)

10. How to find minimum cost path in a matrix?

11. How to find maximum size square sub-matrix with all 1s?

13. How to find Longest Palindromic Substring in Java?

14. How to find Longest Palindromic Subsequence in Java?

15. How to find the length of longest increasing subsequence in an array?

16. How to find the Longest Increasing Subsequence O(n logn) in Java?

17. How to calculate Longest Common Substring in Java?

18. How to find Longest Common Subsequence in Java?

19. How to find the length of longest bitonic subsequence in an array?

20. How to  print maximum number of As using given four keys.?

21. How to solve Gold Mine Problem in Java?

22. How to find minimum edit distance between given two strings?

23. How to solve popular   0-1 Knapsack Problem in Java?

24. How to find distinct binary strings of length n with no consecutive 1s?

25. How to count all possible decodings of a given digit sequence in Java?

26. How to find total number of ways to make change using given set of coins?

27.  How to solve Set Partition Problem using Dynamic Programming in Java

That's all about the 25 practice Dynamic programming questions for interviews. You can use these question to gain experience on solving DP based problems. Even if you are not preparing for interviews, you can use them to learn Dynamic programming and become a better developer. If you need resources, you can also checkout these best Dynamic programming online courses to learn basics like recursion.

Some Resources for Coding Interviews:

Thanks for reading this article so far. If you like these Dynamic Programming Interview questions for beginners and experienced programmers then please share them with your friends and colleagues. If you have any questions or feedback then please drop a note.