Summary
Now that you have completed this chapter, you should have a fairly high appreciation for the value of dynamic programming. If you initially found this topic to be somewhat anxiety-provoking, you have hopefully come to realize that it is not as complicated as it may have first appeared. Viewing familiar problems through the dynamic programming lens, as we did in this chapter, can certainly help us understand the core ideas that are needed to arrive at a working DP solution. To that end, we encourage you to investigate other variants of the knapsack problem and attempt to implement them using the strategies provided.
And with that, your tour through the vast world of algorithms and data structures in C++ has reached its conclusion. Having arrived at the end of this book, you should have a markedly deepened understanding of how and when to use some of the most useful tools of our trade. Hopefully, you have developed a better sense of the practical applications of the structures and techniques...