This book "Dynamic Programming on Trees" is a deep dive into applying Dynamic Programming technique on Tree Data Structure based problems. On completing this book, you will have these core skills:
* Strong hold on Dynamic Programming on Trees * Easily solve Dynamic Programming problems in Coding Interview
Best approach to go through this book:
* Master the basics (Part 1): This part introduces you to the basics of Tree Data Structure, Dynamic Programming (DP) and how DP can be applied on Tree. Having a strong hold in this part helps you to visualize solutions. * Practice Problems on Tree DP (Part 2): Practice is a key to success for Coding Interviews, Competitive Programming and Efficient Problem Solving. Practice one problem everyday by implementing the solution on your own. * Practice Problems on Graph DP (Part 3): Tree is a restricted version of a Graph and problems in this section will take you to the next level. You will view Trees and Graphs differently.
Table of contents:
* Introduction to Tree * Introduction to Dynamic Programming * Dynamic Programming on Tree * Practice Problems: * Find height of every node of Binary Tree * Find diameter of Binary Tree using height of every node * Find diameter of N-ary Binary Tree * Largest Independent Set in Binary Tree * Binary Lifting with kth ancestor * Minimum number of nodes to be deleted so that at most k leaves are left * Minimum Cost Path in 2D matrix * Maximum Cost Path in 2D matrix * Maximum average value path in a 2D matrix (Restricted) * Minimum average value path in a 2D matrix (Restricted) * Count paths from Top Left to Bottom Right of a Matrix * Minimum Cost for Triangulation of a Convex Polygon * Number of paths with k edges * Shortest Path with k edges * Vertex Cover Problem
Get started with this book and change the equation of your career.
Aditya Chatterjee is an Independent Algorithmic Researcher, Software Developer and Technical Author. He is the founding member of OPENGENUS, an organization focused on changing Internet consumption.
Since 1990s, he has been involved, actively, in the growth of Computing in Japan. Major computational advances have been made in the last 3 decades which reformed not only education infrastructure but also the competitive programming community.
He has collaborated with over 500 researchers and has mentored over 3000 learners personally across the Globe through the Internship program at OPENGENUS.