Programming is about solving problems and here I will dive deep into 20 problem-solving techniques. I will explain each of them, show how to apply them to coding problems, and leave you some exercises so that you can practice on your own. The last section includes a step-by-step guide to learn (not memorize) any algorithm or data structure.
Table of contents
1. Two Pointers2. Pointers moving at different speeds3. Sliding Window4. Dynamic Programming5. Backtracking6. Subsets7. Sorting8. Intervals13. Dequeues15. Two instances of the same data structure17. Top 'K' Elements18. K-way mergeSort: