Summary
In this chapter, you learned more about recursion and how it can help us solve some problems using dynamic programming. We covered the most famous dynamic programming problems, such as a variation of the min-coin change problem, the knapsack problem, the longest common subsequence, and matrix chain multiplication.
You learned about greedy algorithms and how to develop a greedy solution for the min-coin change problem and the fractional knapsack problem.
You also learned about functional programming, and we covered some examples of how to use JavaScript functionalities in this paradigm.
In the next chapter, we will cover the big-O notation and discuss how we can calculate the complexity of an algorithm. You will also learn more concepts that exist in the algorithm world.