What all things I have to learn first before starting dynamic programming. I know data structures, but I don’t know applying divide and conquer,greedy etc… Please help. Can I start DP directly?
you can start by Dynamic Programming , See dynamic programming relies on realizing what the smaller instance of problem is , A solution is built upon previously computed solutions of smaller instance of the same problem you should know how can you apply divide and conquer strategy for a particular problem . Greedy simply means an algorithm that picks the most optimal choices first many greedy algorithm will benefit from dynamic programming approach .
So you can start DP directly basic idea DP is very easy , but it takes many years of practice to master it .
you should know how to use recursion …