90 Days of DSA Roadmap
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) Graphics >
\1\ Breadth First Search [BFS] \2\ Bepth 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