100 DAYS OF DATA STRUCTURES AND ALGORITHMS
DAY -∞ to 0
Use C or C++ as your only programming language. Make sure you are familiar with pointers and objects.
Resources: cppreference.com
DAY 1
Understand the concept of Algorithmic complexity.
For now, ignore the theory, but you should be able to calculate the time and space complexity for every line of code you write.
Resources: wikipedia.org/wiki/Algorithmic_complexity
DAY 2–10
Start with some simple data structures:
- Arrays
- Linked lists
- Strings
- Stacks
- Queues
To code them all, you must understand their fundamental operations (insert, delete, search, traversal), as well as their complexity (Big-O Algorithm Complexity Cheat Sheet).
Resources: bigocheatsheet
DAY 11–25
Let’s now learn some simple algorithms:
- Sorting
- Search
- Prime Numbers
- Strings
- Miscellaneous
Day 26–50
Once you are comfortable with everything above, start doing problems from:
- GeeksforGeeks
- HackerRank
- InterviewBit
- Cracking the coding interview(Book)
- Elements of programming interviews(Book)
DAY 51–60
Learn some non-linear data structures,
- Tree: Binary Tree, Binary Search Tree, Heaps
- Hash table
- Graph
DAY 61–90
Refer to the previous resources and start by working on problems involving trees, hash tables, heaps, and graphs after consulting the prior materials.
Also read:
DAY 91–100
Understand:
- Computational complexity theory
- and NP-completeness
- Knapsack problem
- Travelling salesman problem
- SAT problem
The only solution is to keep trying until you succeed. You must put in genuine effort and develop programmes; don’t just read about it and watch videos. Debugging entails determining the root cause of malfunctioning programmes.
You aren’t making a true effort if you quit up after 10 minutes.