I have been practicing and interviewing over the years. I started this notes to keep track of some of the problems and summarize the core concept behind the problem (ideally multiple solutions including brute force and optimal). I have categorized the problems into their own folders. Complete list of problems is in the uncategorized folder. This is the orgranization that has worked best for me to understand the problems, categories and also revisit if I forget in the future.
All the problems described may not have implementation and is left for readers to implement if needed. I have selected few representative problems for each of the core concepts. This list focus more on the problems that I have struggled over the years (either to remember or recall). Notes are designed based on python implementation.
- Arrays/ Lists/README.md)
- Linked List
- Binary Search
- Trees
- Graphs
- Two pointers
- Sliding Window
- Recursion
- Dynamic Programming
- Greedy
- Divide and Conquor
This README file here lists all the problems. The uncategorized list are meant for quick reference. This list also has problems that could be solved using more than one concept and can fall in more than one category.
I had lots of interviews over the years and gathered some experiences around data structures and algorithm problems. This is my way to track those concepts and make it recall efficient. This note taking started a self practice and self help rather than guide for anyone else. If you have any feedback or suggestions please reach out. If you want to add or improve upon this, you are always welcome to contribute.