/90DaysDSA

Nishant bhaiya's 90DaysDSA challenge.

Primary LanguageC++

90 Days of DSA Roadmap Build Status

Day 1 & 2 : Learn about space and time complexity. One of the most important part of programming is knowing the complexity of the code you writing.

Day 3 to 10 : Learn about recursion and backtracking. One of the most important and most useful Concepts.

Day 11 to 30 : Learn about the basic data structures ->

  • (i) Arrays
  • (ii)Linked List
  • (iii) Stacks and Queues

Some important Suggestion from Nishant Chahar > From Now, start giving contests and learn the new concepts that come along the way. You might not do well in the first few but it’s okay! Just keep learning and keep growing.

Day 31 to 45 : Learn about more and a little more complex data structures and algorithms ->

  • (i) Searching

  • (ii) Sorting {

                 \1\ Bubble Sort
                 \2\ Insertion Sort
                 \3\ Selection Sort
                 \4\ Merge Sort
                 \5\ Quick Sort
    
  • (iii) Hashmaps

  • (iv)Trees

  • (v)Heaps

  • (Vi)Sliding Window

Day 46 to 70 : Learn about DP and Graphs ->

  • (i) Graph ->

                 \1\ Breadth First Search [BFS]  
                 \2\ Depth First Search [DFS] 
                 \3\ Shortest path from source to all vertices: Dijkstra 
                 \4\  Shortest path from every vertex to every other vertex: Floyd Warshall 
                 \5\  Minimum Spanning tree: Prim \6\  Minimum Spanning Tree: Kruskal  
                 \7\  Strongly connected component kosaraju’s algorithm 
                 \8\ Topological Sort  
                 \9\ Shortest Path from source to all vertices with negative edges: Bellman ford   
                 \10\ Normal DSU   
                 \11\ DSU by rank
    
  • (ii) Dynamic Programming

Day 71 to 80 : Learn about OOPs (You’ll get something amazing on this by the time you reach here)

Day 80 to 90 : Some more topics which will help you perform better in online tests

  • (i) Number Theory

  • (ii) Bit Manipulation

  • (iii) Tries

✅ Progress As Per My Day :

📅 Day 01 :

After watching Nishant bhaiya's video, I created a GitHub Repo. Called 90DaysDSA. After Creating the repo i organized all the files and the folders. That day, I Learnt about space and time complexity with the help of GFG and YouTube. {theory only}

📅 Day 02 :

After all the necessary theory, I started solving problems on Leetcode. (Solved some Leetcode problems with the help of Youtube videos)

📅 Day 03 :

At day 3 I started learning about recursion. I watched a couple of tutorials on Youtube also read some documentation on GFG.

📅 Day 04 :

Started solving problems on leetcode also re-watched some tutorials again for better understanding.

📅 Day 05 :

After half of day 05, I started learning about backtracking. Watched a couple of tutorials.

📅 Day 06 :

After reading some more documentation I starting solving problems on Leetcode and gfg. (haven't solve a single one by own).

📅 Day 07 :

Solved some more problems on GeeksforGeeks and watched a tutorial on Youtube.

📅 Day 08 :

Solved some problems on Leetcode of recursion and backtracking.

📅 Day 09 :

DAY OFF!

📅 Day 10 :

revised all the notes of recursion and backtracking and solved some problems on GFG.

📅 Day 11 :

Started learning about Arrays. watched a couple of tutorials on Youtube also read some documentation. Solved some problems.

📅 Day 12 to 16 :

Sloved alot of problems on leetcode, gfg and Codestudio. (Total more than 25)

📅 Day 17 :

Started learning about Linked List, watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode.

📅 Day 18 to 23 :

Practice and sloved alot of problems on leetcode and Codestudio. Also revised my handwritten notes.

📅 Day 24 :

Started learning about Stacks and Queues. watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode.

📅 Day 25 :

DAY OFF!

📅 Day 26 to 30 :

Practice and sloved alot of problems on leetcode, gfg and Codestudio. Also revised my handwritten notes.

📅 Day 31 :

Yay! Feeling Proud, completed 30 Days. Started learning about Searching. watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode.

📅 Day 32 :

Solved some problems on Leetcode, gfg and Codestudio.

📅 Day 33 :

Started learning about Sorting, Started with Bubble Sort. watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode.

📅 Day 34 :

Started learning about Insertion Sort, again watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode.

📅 Day 35 :

Started learning about Selection Sort, and (here we go again) watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode.

📅 Day 36 :

Started Learning about Merge Sort and Quick Sort, watched a couple of tutorials on Youtube also read some documentation on gfg. Solved some problems on leetcode and gfg.

📅 Day 37 :

Started Learning about Quick Sort, watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode and gfg.

📅 Day 38 :

Started learning about Hashmaps, watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode and gfg.

📅 Day 39 :

Started learning about Trees, watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode and gfg.

📅 Day 40 :

Started learning about Heaps, watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode and gfg.

📅 Day 41 :

Started learning about Sliding Window, watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode and gfg.

📅 Day 42 to 45 :

Practice and sloved alot of problems on leetcode, gfg and Codestudio. Also revised my handwritten notes.

📅 Day 46 :

Started learning about Graphics, watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode and gfg.

📅 Day 47 :

Started learning about Breadth First Search (BFS) and Depth First Search (DFS) watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode and gfg.

📅 Day 48 to 50 :

Learnt about Shortest path from source to all vertices: Dijkstra, Shortest path from every vertex to every other vertex: Floyd Warshall. watched a couple of tutorials on Youtube also read some documentation. Solved some problems on leetcode and gfg.

📅 Day 50 to 53 :

Learnt about Minimum Spanning tree: Prim and Minimum Spanning Tree: Kruskal. watched a couple of tutorials on Youtube also read some documentation. Practice and sloved alot of problems on leetcode, gfg and Codestudio. Also revised my handwritten notes.

📅 Day 54 :

Learnt about Strongly connected component kosaraju’s algorithm. watched a couple of tutorials on Youtube also read some documentation. Practice a couple of problems on leetcode.

📅 Day 55 :

Started learning about Topological Sort . watched a couple of tutorials on Youtube also read some documentation. Practice and sloved alot of problems on leetcode, gfg and Codestudio.

📅 Day 56 :

In the day 56, I learnt about Shortest Path from source to all vertices with negative edges: Bellman ford. watched a couple of tutorials on Youtube also read some documentation. Practice and sloved alot of problems on leetcode, gfg and Codestudio.

📅 Day 57 to 60 :

Learnt about Normal DSU and DSU by rank, solved alot problems on Leetcode. I'm glad it's been 2 months since I started this journey.

📅 Day 61 :

Started learning about Dynamic Programming, watched a couple of tutorials on Youtube also read some documentation. Practice and sloved alot of problems on leetcode, gfg and Codestudio.

📅 Day 62 to 65 :

Learnt and Practice alot of problems on leetcode, gfg and Codestudio.

📅 Day 66 :

Started learning about Dynamic Programming, read a couple of documentation on gfg and also watched some tutorials on Youtube. {theory only}

📅 Day 67 to 69 :

Revised old topics like Sliding Windo,Stacks and Queues, backtracking etc. Practice and sloved problems of Dynamic Programming on Leetcode.