Best Way to Learn DP problems

I have been doing programming for the past 1 and a half years and I find that I am not very good at solving Problems related to Dynamic Programming.What is the best way to learn DP problems or you can suggest any book or sources which can help…

Thank you.

The best way to learn dp is just to practice. It is very hard to solve a type of problem if you have not seen it in your entire life. So i suggest you to go over all of these problems : [click here][1]

and after that, here is a big list of dp problems:
[click here][2]

Good luck!

Bedjovski
[1]: http://codeforces.com/blog/entry/325
[2]: http://apps.topcoder.com/forums/;jsessionid=C684F032169B7439C8012AAB6BA2018C?module=Thread&threadID=674592

4 Likes

As @bedjovski said, there’s no substitute for practice, especially with DP. I suggest starting simpler and learning general DP problems and their respective solutions. Oftentimes with DP, you’ll come across several problems that seem challenging, but are actually just variants of these general problems.

A list of several such problems can be found here, along with video tutorials: http://people.csail.mit.edu/bdean/6.046/dp/

I recommend, however, genuinely trying to solve these problems first before looking at the tutorial just to build intuition about DP.

Lastly, try to solve the DP problems you can solve several times. This will help build your intuition about DP and will also help you remember the problems you did for the common event of seeing a problem similar to one you’ve done before.

2 Likes
//