Final Remarks

Here's a quick summary of what we learned from the "Optimization Techniques" module.

We'll cover the following

Congratulations! You have successfully completed the “Optimization Techniques” module.

Summary

In this module, we learned to use Greedy Techniques and Dynamic Programming—two coding patterns that interviewers often use to differentiate between average and highly skilled programmers. We saw that not all problems require an exhaustive search through the solution space. Rather, consistently choosing the locally optimal solution can be proven to yield the globally optimal solution. We learned to identify such opportunities for optimization and to use Greedy Techniques to develop simple, highly efficient solutions. Next, we considered problems that have a well-defined structure, where the same subproblem is encountered multiple times. We learned to use multiple Dynamic Programming techniques to avoid recomputing recurring subproblems.

What's Next

Now that we have learned two powerful optimization techniques, we will learn how to use graphs, tries, and custom data structures to solve a range of problems, in the next module, “Advanced Data Structures.”