Partially open sourced content from my book series, with the working title The Comprehensive Manual to Algorithms in Python. This book series uses Python 3 as its programming language due to its popularity and easiness to implement in real coding inteview. One of the unique characteristics of this book series is that it uses LeetCode problems as examples and exercises. This series is composed of two parts in total. The first part builds up the knowledge base that the audience needs for tackling coding interviews by teaching fundamental data structures and algorithm design and analysis. Leetcode problems are used as examples throughout this part. The second part builds upon the knowledge in book 1 by applying it to more advanced topics such as dynamic programming and string matching. It features categorized problems to enable the reader to identify types of questions so they can quickly find the proper algorithms in order to solve them in an interview. The subtitle of each book is:
- Learning Data Structures and Algorithms with LeetCode
- Mastering the LeetCode Problem Catalog
Sample code used in each chapter of this part (only a small part right now).
- Part Two
Note: everything is still in progress, so use it with caution.
My purpose here is to offer any person who is interested with getting hands dirty with algorithms and coding a practical and strict manual to guide them through this process. The content is supposed to not only be correct (i.e. , the code and algorithms work) and catchy but also discreet (i.e , to know why it works, when it works, and how it works but not as theoretical as the Introduction to Algorithms).
As the first part of the series, this part includes:
- Introduction,
- Fundamental Algorithm Design and Analysis (divide and conquer, complexity analysis),
- Data Structures (connect the doubts of data structures and Python built-in data types/Modules),
- Complete Search (searching on linear data structres, graph, tree),
- Advanced Algorithm Design (Dynamic programming, greedy algorithm),
- Math and Bit Manipulation
LeetCode problems as used as exercise, only id and the title of the questions are given.
The Second part of the series focusing on catagorize problems and solve them type by type.
- Dynamic Programming Questions (15%)
- Array Questions (15%)
- Linked List, Stack, Queue, and Heap Questions (12%)
- String Questions (15%)
- Tree Questions (10%)
- Graph Questions (15%)
If you like the example chapters that I put here, please leave your comment here. This book comes with a lot of hard work --personally, I paused my PhD program for a semester to focus on. Therefore, your comment is important to lead to the publication of the work.
If you have ideas to improve the book, about formatting, more contents, or correct the errors are also very welcome too.
If you are excellent with algorithms, or top leaders on the LeetCode Weekly contest, or made in the ACM ICPC contest, and are interested into helping and potentially coauthor on some parts of the book, please do not hesitate to contact me.