- All topics will contain problems from LeetCode Easy to Hard, explained in an easy-to-understand manner.
- Complete custom implementation of all Data Structures and Algorithms.
- Complete Git & GitHub Course
- Introduction to Programming
- Flow of the program
- Introduction to Java
- First Java Program
- Functions
- Arrays
- Pattern questions
- Strings
- Maths for DSA
- Recursion
- Space and Time Complexity Analysis
- Introduction
- Comparisons of various cases
- Solving Linear Recurrence Relations
- Solving Divide and Conquer Recurrence Relations
- Big-O, Big-Omega, Big-Theta Notations
- Little Notations
- Get equation of any relation easily - best and easiest approach
- Complexity discussion of all the problems we do
- Space Complexity
- NP-Completeness Introduction
- Object Oriented Programming
- Introduction
- Classes & its instances
- this keyword in Java
- Properties
- Overloading & Overriding
- Static & Non-Static
- Packages
- Access Control
- Interfaces
- Abstract Classes
- Annotations
- Singleton Class
- final, finalize, finally
- Object Cloning
- Object Class
- Generics
- Exception Handling
- Collections Framework
- Vector Class
- Lambda Expression
- Enums
- Linked List
- Stacks & Queues
- Introduction
- Push efficient
- Pop efficient
- Circular Queue
- Queue using Stack and Vice versa
- Interview problems
- Trees
- Introduction
- Binary Trees
- Binary Search Trees
- DFS
- BFS
- AVL Trees
- Segment Tree
- Heaps
- Introduction
- Theory
- Priority Queue
- Heapsort
- Two Heaps Method
- k-way merge
- Top k elements
- Interval problems
- HashMap
- Introduction
- Theory - how it works
- Comparisons of various forms
- Limitations and how to solve
- Map using LinkedList
- Map using Hash
- Count Sort
- Radix Sort
- Chaining
- Probing
- Huffman-Encoder
- Subarray Questions: Sliding window, Two Pointer, Kadane's Algorithm
- Graphs
- Introduction
- BFS
- DFS
- Working with graph components
- Minimum Spanning Trees
- Kruskal Algorithm
- Prims Algorithm
- Dijkstra’s shortest path algorithm
- Topological Sort
- Bellman ford
- A* pathfinding Algorithm
- Dynamic Programming
- Introduction
- Recursion + Recursion DP + Iteration + Iteration Space Optimized
- Complexity Analysis
- 0/1 Knapsack
- Subset Questions
- Unbounded Knapsack
- Subsequence questions
- String DP
- Greedy Algorithms
- Tries
- Fast IO
- File handling
- Bitwise + DP
- Extended Euclidean algorithm
- Modulo Multiplicative Inverse
- Linear Diophantine Equations
- Matrix Exponentiation
- Mathematical Expectation
- Catalan Numbers
- Fermat’s Theorem
- Wilson's Theorem
- Euler's Theorem
- Lucas Theorem
- Chinese Remainder Theorem
- Euler Totient
- NP-Completeness
- Multithreading
- Fenwick Tree / Binary Indexed Tree
- Square Root Decomposition