Summary
In this chapter, 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. We learned about divide and conquer algorithms and how they are different from dynamic programming.
We learned about greedy algorithms and how to develop a greedy solution for the min-coin change problem and the fractional knapsack problem. We also covered the concept of backtracking and some famous problems, such as Rat in a Maze and Sudoku Solver.
We 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. We will also learn more concepts that exist in the algorithm world.