Skip to content

Commit fa45871

Browse files
authored
Update ROADMAP.md
1 parent 4830e8d commit fa45871

File tree

1 file changed

+99
-102
lines changed

1 file changed

+99
-102
lines changed

ROADMAP.md

+99-102
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
- Flow of the program
88
- Time & Space Complexity
99

10-
3. Basics of Java
10+
3. [Basics of Java](https://www.javatpoint.com/java-tutorial)
1111
- Array
1212
- Introduction
1313
- Memory management
@@ -84,112 +84,109 @@
8484
- Subset Questions
8585

8686
- Space and Time Complexity Analysis
87+
- Introduction
88+
- Comparisons of various cases
89+
- Solving Linear Recurrence Relations
90+
- Solving Divide and Conquer Recurrence Relations
91+
- Big-O, Big-Omega, Big-Theta Notations
92+
- Get equation of any relation easily - best and easiest approach
93+
- Complexity discussion of all the problems we do
94+
- Space Complexity
95+
- Memory Allocation of various languages
96+
- NP-Completeness and Hardness
97+
98+
- Object Oriented Programming
99+
- Introduction
100+
- Classes & its instances
101+
- this keyword in Java
102+
- Properties
103+
- Inheritance
104+
- Abstraction
105+
- Polymorphism
106+
- Encapsulation
107+
- Overloading & Overriding
108+
- Static & Non-Static
109+
- Access Control
110+
- Interfaces
111+
- Abstract Classes
112+
- Singleton Class
113+
- final, finalize, finally
114+
- Exception Handling
115+
116+
- Stacks & Queues
117+
- Introduction
118+
- Interview problems
119+
- Push efficient
120+
- Pop efficient
121+
- Queue using Stack and Vice versa
122+
- Circular Queue
123+
124+
- Linked List
125+
- Introduction
126+
- Fast and slow pointer
127+
- Cycle Detection
128+
- Single and Doubly LinkedList
129+
- Reversal of LinkedList
130+
131+
- Dynamic Programming
132+
- Introduction
133+
- Recursion + Recursion DP + Iteration + Iteration Space Optimized
134+
- Complexity Analysis
135+
- 0/1 Knapsack
136+
- Subset Questions
137+
- Unbounded Knapsack
138+
- Subsequence questions
139+
- String DP
87140

88-
Introduction
89-
Comparisons of various cases
90-
Solving Linear Recurrence Relations
91-
Solving Divide and Conquer Recurrence Relations
92-
Big-O, Big-Omega, Big-Theta Notations
93-
Get equation of any relation easily - best and easiest approach
94-
Complexity discussion of all the problems we do
95-
Space Complexity
96-
Memory Allocation of various languages
97-
NP-Completeness and Hardness
98-
Object Oriented Programming
99-
100-
Introduction
101-
Classes & its instances
102-
this keyword in Java
103-
Properties
104-
Inheritance
105-
Abstraction
106-
Polymorphism
107-
Encapsulation
108-
Overloading & Overriding
109-
Static & Non-Static
110-
Access Control
111-
Interfaces
112-
Abstract Classes
113-
Singleton Class
114-
final, finalize, finally
115-
Exception Handling
116-
Stacks & Queues
117-
118-
Introduction
119-
Interview problems
120-
Push efficient
121-
Pop efficient
122-
Queue using Stack and Vice versa
123-
Circular Queue
124-
Linked List
125-
126-
Introduction
127-
Fast and slow pointer
128-
Cycle Detection
129-
Single and Doubly LinkedList
130-
Reversal of LinkedList
131-
Dynamic Programming
132-
133-
Introduction
134-
Recursion + Recursion DP + Iteration + Iteration Space Optimized
135-
Complexity Analysis
136-
0/1 Knapsack
137-
Subset Questions
138-
Unbounded Knapsack
139-
Subsequence questions
140-
String DP
141-
Trees
142-
143-
Introduction
144-
Binary Trees
145-
Binary Search Trees
146-
DFS
147-
BFS
148-
AVL Trees
149-
Segment Tree
150-
Fenwick Tree / Binary Indexed Tree
151-
Square Root Decomposition
152-
153-
Heaps
154-
155-
Introduction
156-
Theory
157-
Priority Queue
158-
Two Heaps Method
159-
k-way merge
160-
top k elements
161-
interval problems
162-
HashMap
163-
164-
Introduction
165-
Theory - how it works
166-
Comparisons of various forms
167-
Limitations and how to solve
168-
Map using LinkedList
169-
Map using Hash
170-
Chaining
171-
Probing
172-
Huffman-Encoder
173-
Tries
174-
175-
Graphs
176-
177-
Introduction
178-
BFS
179-
DFS
180-
Working with graph components
181-
Minimum Spanning Trees
182-
Kruskal Algorithm
183-
Prims Algorithm
184-
Dijkstra’s shortest path algorithm
185-
Topological Sort
186-
Bellman ford
187-
A* pathfinding Algorithm
141+
- Trees
142+
- Introduction
143+
- Binary Trees
144+
- Binary Search Trees
145+
- DFS
146+
- BFS
147+
- AVL Trees
148+
- Segment Tree
149+
- Fenwick Tree / Binary Indexed Tree
150+
- Square Root Decomposition
151+
152+
- Heaps
153+
- Introduction
154+
- Theory
155+
- Priority Queue
156+
- Two Heaps Method
157+
- k-way merge
158+
- top k elements
159+
- interval problems
160+
161+
- HashMap
162+
- Introduction
163+
- Theory - how it works
164+
- Comparisons of various forms
165+
- Limitations and how to solve
166+
- Map using LinkedList
167+
- Map using Hash
168+
- Chaining
169+
- Probing
170+
- Huffman-Encoder
171+
- Tries
172+
173+
- Graphs
174+
- Introduction
175+
- BFS
176+
- DFS
177+
- Working with graph components
178+
- Minimum Spanning Trees
179+
- Kruskal Algorithm
180+
- Prims Algorithm
181+
- Dijkstra’s shortest path algorithm
182+
- Topological Sort
183+
- Bellman ford
184+
- A* pathfinding Algorithm
188185

189186
### What basic data structures and algorithms should one learn before starting competitive programming?
190187

191188
1. Basic data sturctures (arrays, queues, linked lists, etc.).
192-
2. Bit manipulation.
189+
2. [Bit manipulation.](https://www.youtube.com/watch?v=5rtVTYAk9KQ&t)
193190
3. Advanced data structures:
194191
- Union-Find Disjoint Sets.
195192
- Segment Tree.

0 commit comments

Comments
 (0)