|
1 | | -Topic-Wise Roadmap To Learn Data Structures and Algorithms |
| 1 | +Topic-Wise Roadmap To Learning Data Structures and Algorithms |
2 | 2 | =============================================== |
3 | | -------------------- |
4 | | -<br> |
| 3 | +------------- |
5 | 4 | <br> |
6 | 5 |
|
7 | 6 | # 1. Arrays |
8 | 7 |
|
9 | 8 | ### -Bare Minimum |
10 | | -- [ ] [ Top 50 Array Coding Problems - GeeksForGeeks](https://www.geeksforgeeks.org/top-50-array-coding-problems-for-interviews/ "Top 50 Array Coding Problems - GeeksForGeeks") |
| 9 | +> - [ ] [ Top 50 Array Coding Problems - GeeksForGeeks](https://www.geeksforgeeks.org/top-50-array-coding-problems-for-interviews/ "Top 50 Array Coding Problems - GeeksForGeeks") |
11 | 10 |
|
12 | 11 | ### -Bonus |
13 | | -- [ ] [ Array Problems - InterviewBit](https://www.interviewbit.com/courses/programming/topics/arrays/ "Interview Bit Array Problems - InterviewBit") |
14 | | -- [ ] [ Array Problems - LeetCode](https://leetcode.com/tag/array/ "Array Problems - LeetCode") |
| 12 | +> - [ ] [ Array Problems - InterviewBit](https://www.interviewbit.com/courses/programming/topics/arrays/ "Interview Bit Array Problems - InterviewBit") |
| 13 | +> - [ ] [ Array Problems - LeetCode](https://leetcode.com/tag/array/ "Array Problems - LeetCode") |
15 | 14 |
|
16 | 15 | ------------- |
17 | 16 |
|
18 | 17 | # 2. Strings |
19 | 18 |
|
20 | 19 | ### -Bare Minimum |
21 | | -- [ ] [ String Problems - InterviewBit](https://www.interviewbit.com/courses/programming/topics/strings/ "String Problems - InterviewBit") |
| 20 | +> - [ ] [ String Problems - InterviewBit](https://www.interviewbit.com/courses/programming/topics/strings/ "String Problems - InterviewBit") |
22 | 21 | |
23 | 22 | ### -Bonus |
24 | | -- [ ] [ String Problems - LeetCode](https://leetcode.com/tag/string/ "String Problems - LeetCode") |
25 | | -- [ ] [ Problem solving (String) - HackerRank](https://www.hackerrank.com/domains/algorithms?filters%5Bstatus%5D%5B%5D=unsolved%5Cu0026filters%5Bsubdomains%5D%5B%5D%3Dstrings%5Cu0026badge_type%3Dproblem-solving&filters%5Bstatus%5D%5B%5D=unsolved&filters%5Bsubdomains%5D%5B%5D=strings "Problem solving (String) - HackerRank") |
| 23 | +> - [ ] [ String Problems - LeetCode](https://leetcode.com/tag/string/ "String Problems - LeetCode") |
| 24 | +> - [ ] [ Problem solving (String) - HackerRank](https://www.hackerrank.com/domains/algorithms?filters%5Bstatus%5D%5B%5D=unsolved%5Cu0026filters%5Bsubdomains%5D%5B%5D%3Dstrings%5Cu0026badge_type%3Dproblem-solving&filters%5Bstatus%5D%5B%5D=unsolved&filters%5Bsubdomains%5D%5B%5D=strings "Problem solving (String) - HackerRank") |
26 | 25 |
|
27 | 26 | -------- |
28 | 27 |
|
29 | 28 | # 3. Linked Lists |
30 | 29 |
|
31 | 30 | ### -Bare Minimum |
32 | | -- [ ] [ Linked-List Problems - InterviewBit](https://www.interviewbit.com/courses/programming/topics/linked-lists/ "Linked-List Problems - InterviewBit") |
| 31 | +> - [ ] [ Linked-List Problems - InterviewBit](https://www.interviewbit.com/courses/programming/topics/linked-lists/ "Linked-List Problems - InterviewBit") |
33 | 32 |
|
34 | 33 | ### -Bonus |
35 | | -- [ ] [ Linked-List Questions - LeetCode](https://leetcode.com/tag/linked-list/ "Linked-List Questions - LeetCode") |
36 | | -- [ ] [ Top 20 Linked-List Questions - GeeksForGeeks](https://www.geeksforgeeks.org/top-20-linked-list-interview-question/ "Top 20 Linked-List Questions - GeeksForGeeks") |
| 34 | +> - [ ] [ Linked-List Questions - LeetCode](https://leetcode.com/tag/linked-list/ "Linked-List Questions - LeetCode") |
| 35 | +> - [ ] [ Top 20 Linked-List Questions - GeeksForGeeks](https://www.geeksforgeeks.org/top-20-linked-list-interview-question/ "Top 20 Linked-List Questions - GeeksForGeeks") |
37 | 36 |
|
38 | 37 | -------- |
39 | 38 |
|
40 | 39 | # 4. Stacks and Queues |
41 | 40 |
|
42 | 41 | ### -Theory: |
43 | | -- [ ] [ Stack Data Structure Introduction - GeeksForGeeks](https://www.geeksforgeeks.org/stack-data-structure-introduction-program/ "Stack Data Structure Introduction - GeeksForGeeks") |
44 | | -- [ ] [ Queue Set Introduction and Array Implementation - GeeksForGeeks](https://www.geeksforgeeks.org/queue-set-1introduction-and-array-implementation/ "Queue Set Introduction and Array Implementation - GeeksForGeeks") |
| 42 | +> - [ ] [ Stack Data Structure Introduction - GeeksForGeeks](https://www.geeksforgeeks.org/stack-data-structure-introduction-program/ "Stack Data Structure Introduction - GeeksForGeeks") |
| 43 | +> - [ ] [ Queue Set Introduction and Array Implementation - GeeksForGeeks](https://www.geeksforgeeks.org/queue-set-1introduction-and-array-implementation/ "Queue Set Introduction and Array Implementation - GeeksForGeeks") |
45 | 44 |
|
46 | 45 | ### -Bare Minimum |
47 | | -- [ ] [ Stacks and Queues - InterviewBit](https://www.interviewbit.com/courses/programming/topics/stacks-and-queues/ "Stacks and Queues - InterviewBit") |
| 46 | +> - [ ] [ Stacks and Queues - InterviewBit](https://www.interviewbit.com/courses/programming/topics/stacks-and-queues/ "Stacks and Queues - InterviewBit") |
48 | 47 |
|
49 | 48 | ### -Bonus |
50 | | -- [ ] [ Stack Problems - LeetCode](https://leetcode.com/tag/stack/ "Stack Problems - LeetCode") |
51 | | -- [ ] [ Queue Problems - LeetCode](https://leetcode.com/tag/queue/ "Queue Problems - LeetCode") |
52 | | -- [ ] [ Queue Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/queue-data-structure/ "Queue Data Structure - GeeksForGeeks") |
53 | | -- [ ] [ Stack Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/stack-data-structure0 "Stack Data Structure - GeeksForGeeks") |
| 49 | +> - [ ] [ Stack Problems - LeetCode](https://leetcode.com/tag/stack/ "Stack Problems - LeetCode") |
| 50 | +> - [ ] [ Queue Problems - LeetCode](https://leetcode.com/tag/queue/ "Queue Problems - LeetCode") |
| 51 | +> - [ ] [ Queue Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/queue-data-structure/ "Queue Data Structure - GeeksForGeeks") |
| 52 | +> - [ ] [ Stack Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/stack-data-structure0 "Stack Data Structure - GeeksForGeeks") |
54 | 53 |
|
55 | 54 | --------- |
56 | 55 |
|
57 | 56 | # 5. Tree-based data structures: |
58 | 57 |
|
59 | 58 | ### -Theory: |
60 | | -- [ ] [ Binary Tree Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/binary-tree-data-structure/ "Binary Tree Data Structure - GeeksForGeeks") |
61 | | -- [ ] [ Binary Search Tree Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/binary-search-tree-data-structure/ "Binary Search Tree Data Structure - GeeksForGeeks") |
62 | | -- [ ] [ Trie Insert and Search - GeeksForGeeks](https://www.geeksforgeeks.org/trie-insert-and-search/ "Trie Insert and Search - GeeksForGeeks") |
63 | | -- [ ] [ Heap Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/heap-data-structure/ "Heap Data Structure - GeeksForGeeks") |
64 | | -- [ ] [ Hashing Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/hashing-data-structure/ "Hashing Data Structure - GeeksForGeeks") |
| 59 | +> - [ ] [ Binary Tree Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/binary-tree-data-structure/ "Binary Tree Data Structure - GeeksForGeeks") |
| 60 | +> - [ ] [ Binary Search Tree Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/binary-search-tree-data-structure/ "Binary Search Tree Data Structure - GeeksForGeeks") |
| 61 | +> - [ ] [ Trie Insert and Search - GeeksForGeeks](https://www.geeksforgeeks.org/trie-insert-and-search/ "Trie Insert and Search - GeeksForGeeks") |
| 62 | +> - [ ] [ Heap Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/heap-data-structure/ "Heap Data Structure - GeeksForGeeks") |
| 63 | +> - [ ] [ Hashing Data Structure - GeeksForGeeks](https://www.geeksforgeeks.org/hashing-data-structure/ "Hashing Data Structure - GeeksForGeeks") |
65 | 64 |
|
66 | 65 | ### -Bare minimum: |
67 | | -- [ ] [ Tree Data Structure - InterviewBit](https://www.interviewbit.com/courses/programming/topics/tree-data-structure/ "Tree Data Structure - InterviewBit") |
68 | | -- [ ] [ Heaps and Maps - InterviewBit](https://www.interviewbit.com/courses/programming/topics/heaps-and-maps/ "Heaps and Maps - InterviewBit") |
69 | | -- [ ] [ Hashing - InterviewBit](https://www.interviewbit.com/courses/programming/topics/hashing/ "Hashing - InterviewBit") |
| 66 | +> - [ ] [ Tree Data Structure - InterviewBit](https://www.interviewbit.com/courses/programming/topics/tree-data-structure/ "Tree Data Structure - InterviewBit") |
| 67 | +> - [ ] [ Heaps and Maps - InterviewBit](https://www.interviewbit.com/courses/programming/topics/heaps-and-maps/ "Heaps and Maps - InterviewBit") |
| 68 | +> - [ ] [ Hashing - InterviewBit](https://www.interviewbit.com/courses/programming/topics/hashing/ "Hashing - InterviewBit") |
70 | 69 |
|
71 | 70 | ### -Bonus |
72 | | -- [ ] [ Tree - LeetCode](https://leetcode.com/tag/tree/ "Tree - LeetCode") |
73 | | -- [ ] [ Heap - LeetCode](https://leetcode.com/tag/heap/ "Heap - LeetCode") |
74 | | -- [ ] [ Trie - LeetCode](https://leetcode.com/tag/trie/ "Trie - LeetCode") |
75 | | -- [ ] [ Hash Table - LeetCode](https://leetcode.com/tag/hash-table/ "Hash Table - LeetCode") |
| 71 | +> - [ ] [ Tree - LeetCode](https://leetcode.com/tag/tree/ "Tree - LeetCode") |
| 72 | +> - [ ] [ Heap - LeetCode](https://leetcode.com/tag/heap/ "Heap - LeetCode") |
| 73 | +> - [ ] [ Trie - LeetCode](https://leetcode.com/tag/trie/ "Trie - LeetCode") |
| 74 | +> - [ ] [ Hash Table - LeetCode](https://leetcode.com/tag/hash-table/ "Hash Table - LeetCode") |
76 | 75 |
|
77 | 76 | -------- |
78 | 77 |
|
79 | 78 | # 6. Graphs: |
80 | 79 |
|
81 | 80 | ### -Theory: |
82 | | -- [ ] [ Graph and It's Representations](https://www.geeksforgeeks.org/graph-and-its-representations/ "Graph and It's Representations - GeeksForGeeks") |
| 81 | +> - [ ] [ Graph and It's Representations](https://www.geeksforgeeks.org/graph-and-its-representations/ "Graph and It's Representations - GeeksForGeeks") |
83 | 82 |
|
84 | 83 | ### -Standard Algos: |
85 | | -- [ ] [ Breadth First Search - GeeksForGeeks](https://www.geeksforgeeks.org/breadth-first-search-or-bfs-for-a-graph/ "Breadth First Search - GeeksForGeeks") |
86 | | -- [ ] [ Depth First Search - GeeksForGeeks](https://www.geeksforgeeks.org/depth-first-search-or-dfs-for-a-graph/ "Depth First Search - GeeksForGeeks") |
87 | | -- [ ] [ Dijkstra's Shortest Path Algorithm - GeeksForGeeks](https://www.geeksforgeeks.org/dijkstras-shortest-path-algorithm-greedy-algo-7/ "Dijkstra's Shortest Path Algorithm - GeeksForGeeks") |
88 | | -- [ ] [ Prim's Minimum Spanning Tree - GeeksForGeeks](https://www.geeksforgeeks.org/prims-minimum-spanning-tree-mst-greedy-algo-5/ "Prim's Minimum Spanning Tree - GeeksForGeeks") |
89 | | -- [ ] [ Kruskal's Minimum Spinning Tree Algorithm](https://www.geeksforgeeks.org/kruskals-minimum-spanning-tree-algorithm-greedy-algo-2/ "Kruskal's Minimum Spinning Tree Algorithm") |
90 | | -- [ ] [ Floyd Warshall Algorithm - GeeksForGeeks](https://www.geeksforgeeks.org/floyd-warshall-algorithm-dp-16/ "Floyd Warshall Algorithm - GeeksForGeeks") |
91 | | -- [ ] [ Union Find Algorithm - GeeksForGeeks](https://www.geeksforgeeks.org/union-find-algorithm-union-rank-find-optimized-path-compression/ "Union Find Algorithm - GeeksForGeeks") |
| 84 | +> - [ ] [ Breadth First Search - GeeksForGeeks](https://www.geeksforgeeks.org/breadth-first-search-or-bfs-for-a-graph/ "Breadth First Search - GeeksForGeeks") |
| 85 | +> - [ ] [ Depth First Search - GeeksForGeeks](https://www.geeksforgeeks.org/depth-first-search-or-dfs-for-a-graph/ "Depth First Search - GeeksForGeeks") |
| 86 | +> - [ ] [ Dijkstra's Shortest Path Algorithm - GeeksForGeeks](https://www.geeksforgeeks.org/dijkstras-shortest-path-algorithm-greedy-algo-7/ "Dijkstra's Shortest Path Algorithm - GeeksForGeeks") |
| 87 | +> - [ ] [ Prim's Minimum Spanning Tree - GeeksForGeeks](https://www.geeksforgeeks.org/prims-minimum-spanning-tree-mst-greedy-algo-5/ "Prim's Minimum Spanning Tree - GeeksForGeeks") |
| 88 | +> - [ ] [ Kruskal's Minimum Spinning Tree Algorithm](https://www.geeksforgeeks.org/kruskals-minimum-spanning-tree-algorithm-greedy-algo-2/ "Kruskal's Minimum Spinning Tree Algorithm") |
| 89 | +> - [ ] [ Floyd Warshall Algorithm - GeeksForGeeks](https://www.geeksforgeeks.org/floyd-warshall-algorithm-dp-16/ "Floyd Warshall Algorithm - GeeksForGeeks") |
| 90 | +> - [ ] [ Union Find Algorithm - GeeksForGeeks](https://www.geeksforgeeks.org/union-find-algorithm-union-rank-find-optimized-path-compression/ "Union Find Algorithm - GeeksForGeeks") |
92 | 91 |
|
93 | 92 | ### -Bare Minimum: |
94 | | -- [ ] [ Graph Problems - LeetCode](https://leetcode.com/tag/graph/ "Graph Problems - LeetCode") (Easy and Medium) |
| 93 | +> - [ ] [ Graph Problems - LeetCode](https://leetcode.com/tag/graph/ "Graph Problems - LeetCode") (Easy and Medium) |
95 | 94 |
|
96 | 95 | ### -Bonus: |
97 | | -- [ ] [ Graph Data Structure Algorithms - InterviewBit](https://www.interviewbit.com/courses/programming/topics/graph-data-structure-algorithms/ "Graph Data Structure Algorithms - InterviewBit") |
| 96 | +> - [ ] [ Graph Data Structure Algorithms - InterviewBit](https://www.interviewbit.com/courses/programming/topics/graph-data-structure-algorithms/ "Graph Data Structure Algorithms - InterviewBit") |
98 | 97 |
|
99 | 98 | --------- |
100 | 99 |
|
101 | 100 | # 7. Dynamic Programming: |
102 | 101 |
|
103 | 102 | ### -Video lectures: |
104 | | -- [ ] [ Dynamic Programming I: Fibonacci, Shortest Paths](https://www.youtube.com/watch?v=OQ5jsbhAv_M\u0026list=PLcDimPvbmfT8qAxD6JH_kmXiQwTNcoK78 "Dynamic Programming I: Fibonacci, Shortest Paths") |
105 | | -- [ ] [ Dynamic Programming II: Text Justification, Blackjack](https://www.youtube.com/watch?v=ENyox7kNKeY\u0026list=PLcDimPvbmfT8qAxD6JH_kmXiQwTNcoK78\u0026index=2 "Dynamic Programming II: Text Justification, Blackjack") |
106 | | -- [ ] [ Dynamic Programming III: Parenthesization, Edit Distance, Knapsack](https://www.youtube.com/watch?v=ocZMDMZwhCY\u0026list=PLcDimPvbmfT8qAxD6JH_kmXiQwTNcoK78\u0026index=3 "Dynamic Programming III: Parenthesization, Edit Distance, Knapsack") |
| 103 | +> - [ ] [ Dynamic Programming I: Fibonacci, Shortest Paths](https://www.youtube.com/watch?v=OQ5jsbhAv_M\u0026list=PLcDimPvbmfT8qAxD6JH_kmXiQwTNcoK78 "Dynamic Programming I: Fibonacci, Shortest Paths") |
| 104 | +> - [ ] [ Dynamic Programming II: Text Justification, Blackjack](https://www.youtube.com/watch?v=ENyox7kNKeY\u0026list=PLcDimPvbmfT8qAxD6JH_kmXiQwTNcoK78\u0026index=2 "Dynamic Programming II: Text Justification, Blackjack") |
| 105 | +> - [ ] [ Dynamic Programming III: Parenthesization, Edit Distance, Knapsack](https://www.youtube.com/watch?v=ocZMDMZwhCY\u0026list=PLcDimPvbmfT8qAxD6JH_kmXiQwTNcoK78\u0026index=3 "Dynamic Programming III: Parenthesization, Edit Distance, Knapsack") |
107 | 106 |
|
108 | 107 | ### -Bare minimum (Standard problems): |
109 | | -- [ ] [ Program For nth Fibonacci Number - GeeksForGeeks](https://www.geeksforgeeks.org/program-for-nth-fibonacci-number/ "Program For nth Fibonacci Number - GeeksForGeeks") |
110 | | -- [ ] [ 0-1 Knapsack Problem - GeeksForGeeks](https://www.geeksforgeeks.org/0-1-knapsack-problem-dp-10/ "0-1 Knapsack Problem - GeeksForGeeks") |
111 | | -- [ ] [ Coin Change - GeeksForGeeks](https://www.geeksforgeeks.org/coin-change-dp-7/ "Coin Change - GeeksForGeeks") |
112 | | -- [ ] [ Compute nCr % p - GeeksForGeeks](https://www.geeksforgeeks.org/compute-ncr-p-set-1-introduction-and-dynamic-programming-solution/ "Compute nCr % p - GeeksForGeeks") |
113 | | -- [ ] [ Longest Increasing Subsequence - GeeksForGeeks](https://www.geeksforgeeks.org/longest-increasing-subsequence-dp-3/ "Longest Increasing Subsequence - GeeksForGeeks") |
114 | | -- [ ] [ Longest Common Subsequence - GeeksForGeeks](https://www.geeksforgeeks.org/longest-common-subsequence-dp-4/ "Longest Common Subsequence - GeeksForGeeks") |
115 | | -- [ ] [ Longest Commono Substring - GeeksForGeeks](https://www.geeksforgeeks.org/longest-common-substring-dp-29/ "Longest Commono Substring - GeeksForGeeks") |
| 108 | +> - [ ] [ Program For nth Fibonacci Number - GeeksForGeeks](https://www.geeksforgeeks.org/program-for-nth-fibonacci-number/ "Program For nth Fibonacci Number - GeeksForGeeks") |
| 109 | +> - [ ] [ 0-1 Knapsack Problem - GeeksForGeeks](https://www.geeksforgeeks.org/0-1-knapsack-problem-dp-10/ "0-1 Knapsack Problem - GeeksForGeeks") |
| 110 | +> - [ ] [ Coin Change - GeeksForGeeks](https://www.geeksforgeeks.org/coin-change-dp-7/ "Coin Change - GeeksForGeeks") |
| 111 | +> - [ ] [ Compute nCr % p - GeeksForGeeks](https://www.geeksforgeeks.org/compute-ncr-p-set-1-introduction-and-dynamic-programming-solution/ "Compute nCr % p - GeeksForGeeks") |
| 112 | +> - [ ] [ Longest Increasing Subsequence - GeeksForGeeks](https://www.geeksforgeeks.org/longest-increasing-subsequence-dp-3/ "Longest Increasing Subsequence - GeeksForGeeks") |
| 113 | +> - [ ] [ Longest Common Subsequence - GeeksForGeeks](https://www.geeksforgeeks.org/longest-common-subsequence-dp-4/ "Longest Common Subsequence - GeeksForGeeks") |
| 114 | +> - [ ] [ Longest Commono Substring - GeeksForGeeks](https://www.geeksforgeeks.org/longest-common-substring-dp-29/ "Longest Commono Substring - GeeksForGeeks") |
116 | 115 |
|
117 | 116 |
|
118 | 117 | ### -Bonus: |
119 | | -- [ ] [ Dynamic Programming - InterviewBit](https://www.interviewbit.com/courses/programming/topics/dynamic-programming/ "Dynamic Programming - InterviewBit") |
120 | | -- [ ] [ Dynamic Programming - LeetCode](https://leetcode.com/tag/dynamic-programming/ "Dynamic Programming - LeetCode") |
| 118 | +> - [ ] [ Dynamic Programming - InterviewBit](https://www.interviewbit.com/courses/programming/topics/dynamic-programming/ "Dynamic Programming - InterviewBit") |
| 119 | +> - [ ] [ Dynamic Programming - LeetCode](https://leetcode.com/tag/dynamic-programming/ "Dynamic Programming - LeetCode") |
0 commit comments