Roadmap To Learn Data Structures and Algorithms
1. Arrays
-Bare Minimum
a. https://www.geeksforgeeks.org/top-50-array-coding-problems-for-interviews/
-Bonus
a. https://www.interviewbit.com/courses/programming/topics/arrays/
b. https://leetcode.com/tag/array/
2. Strings
-Bare Minimum
a. https://www.interviewbit.com/courses/programming/topics/strings/
-Bonus
a. https://leetcode.com/tag/string/
b. https://www.hackerrank.com/domains/algorithms?filters%5Bstatus%5D%5B%5D=unsolved\u0026filters%5Bsubdomains%5D%5B%5D=strings\u0026badge_type=problem-solving
3. Linked Lists
-Bare Minimum
a. https://www.interviewbit.com/courses/programming/topics/linked-lists/
-Bonus
a. https://leetcode.com/tag/linked-list/
b. https://www.geeksforgeeks.org/top-20-linked-list-interview-question/
4. Stacks and Queues
-Theory:
a. https://www.geeksforgeeks.org/stack-data-structure-introduction-program/
b. https://www.geeksforgeeks.org/queue-set-1introduction-and-array-implementation/
-Bare Minimum
a. https://www.interviewbit.com/courses/programming/topics/stacks-and-queues/
-Bonus
a. https://leetcode.com/tag/stack/
b. https://leetcode.com/tag/queue/
c. https://www.geeksforgeeks.org/queue-data-structure/
d. https://www.geeksforgeeks.org/stack-data-structure0
5. Tree-based data structures:
-Theory:
a. https://www.geeksforgeeks.org/binary-tree-data-structure/
b. https://www.geeksforgeeks.org/binary-search-tree-data-structure/
c. https://www.geeksforgeeks.org/trie-insert-and-search/
d. https://www.geeksforgeeks.org/heap-data-structure/
e. https://www.geeksforgeeks.org/hashing-data-structure/
-Bare minimum:
a. https://www.interviewbit.com/courses/programming/topics/tree-data-structure/
b. https://www.interviewbit.com/courses/programming/topics/heaps-and-maps/
c. https://www.interviewbit.com/courses/programming/topics/hashing/
-Bonus
a. https://leetcode.com/tag/tree/
b. https://leetcode.com/tag/heap/
c. https://leetcode.com/tag/trie/
d. https://leetcode.com/tag/hash-table/
6. Graphs:
-Theory:
a. https://www.geeksforgeeks.org/graph-and-its-representations/
-Standard Algos:
a. BFS - https://www.geeksforgeeks.org/breadth-first-search-or-bfs-for-a-graph/
b. DFS - https://www.geeksforgeeks.org/depth-first-search-or-dfs-for-a-graph/
c. Dijkstra - https://www.geeksforgeeks.org/dijkstras-shortest-path-algorithm-greedy-algo-7/
d. Prim's - https://www.geeksforgeeks.org/prims-minimum-spanning-tree-mst-greedy-algo-5/
e. Kruskal - https://www.geeksforgeeks.org/kruskals-minimum-spanning-tree-algorithm-greedy-algo-2/
f. Floyd-Warshall - https://www.geeksforgeeks.org/floyd-warshall-algorithm-dp-16/
g. Union Find - https://www.geeksforgeeks.org/union-find-algorithm-union-rank-find-optimized-path-compression/
-Bare Minimum:
a. https://leetcode.com/tag/graph/ (Easy and Medium)
-Bonus:
a. https://www.interviewbit.com/courses/programming/topics/graph-data-structure-algorithms/
7. Dynamic Programming:
-Video lectures:
a. Lec 1 - https://www.youtube.com/watch?v=OQ5jsbhAv_M\u0026list=PLcDimPvbmfT8qAxD6JH_kmXiQwTNcoK78
b. Lec 2 - https://www.youtube.com/watch?v=ENyox7kNKeY\u0026list=PLcDimPvbmfT8qAxD6JH_kmXiQwTNcoK78\u0026index=2
c. Lec 3 - https://www.youtube.com/watch?v=ocZMDMZwhCY\u0026list=PLcDimPvbmfT8qAxD6JH_kmXiQwTNcoK78\u0026index=3
-Bare minimum (Standard problems):
a. https://www.geeksforgeeks.org/program-for-nth-fibonacci-number/
b. https://www.geeksforgeeks.org/0-1-knapsack-problem-dp-10/
c. https://www.geeksforgeeks.org/coin-change-dp-7/
d. https://www.geeksforgeeks.org/compute-ncr-p-set-1-introduction-and-dynamic-programming-solution/
e. https://www.geeksforgeeks.org/longest-increasing-subsequence-dp-3/
f. https://www.geeksforgeeks.org/longest-common-subsequence-dp-4/
g. https://www.geeksforgeeks.org/longest-common-substring-dp-29/
-Bonus:
a. https://www.interviewbit.com/courses/programming/topics/dynamic-programming/
b. https://leetcode.com/tag/dynamic-programming