- [Complete Git & GitHub Course]
- Introduction to Programming
- Flow of the program
- Introduction to Java
- Functions
- Arrays
- Pattern questions
- Strings
- Maths for DSA
- Recursion
- Introduction
- Flow of recursive programs - stacks
- Why recursion?
- Tree building of function calls
- Tail recursion
- Sorting
- Backtracking
- N-Queens
- N-Knights
- Sudoku Solver
- [Maze problems]
- [Recursion String Problems]
- [Recursion Google, Amazon Questions]
- [Recursion Array Problems]
- [Recursion Pattern Problems]
- [Subset Questions]
- [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]
- [Inheritance]
- [Abstraction]
- [Polymorphism]
- [Encapsulation]
- [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
- [Introduction]
- [Singly + Doubly + Circular LinkedList]
- [Fast and slow pointer]
- [Cycle Detection]
- [Reversal of LinkedList]
- [Linked List + Recursion]
- Stacks & Queues
- Introduction
- Interview problems
- Push efficient
- Pop efficient
- Queue using Stack and Vice versa
- Circular Queue
- 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