-
Competitive Programming
-
Data Structures
-
Merge Sort, QuickSort, Count Sort, Bucket Sort
-
Stacks, Queues, Hash Tables, Hash Sets, Heap-Based Structures, Binary Search Tree-Based Data Structures, Coordinate Compression, Custom Comparators
-
Greedy Algorithms, Divide and Conquer, Binary Search the Answer, the Bisection Method
-
Algorithms
-
Programming
-
Linear Search, Binary Search, QuickSelect, Two Pointer Technique
-
Iterative Complete Search, Backtracking, Permutations, Subsets, Pruning
-
Dynamic Programming: Competitive Approach, Top-Down and Bottom-Up DP, Space Optimisation, Prefix Sums, Backtracking to Find Solutions
-
Graph Exploration: Breadth-First Search (BFS), Depth-First Search (DFS), Connected Components, Multi-Source BFS
-
Union-Find Disjoint Sets: Optimised Implementation, Kruskal's Algorithm, Minimum Spanning Tree Variants
-
Game Theory: States and Transitions, Minimax for Optimal Game Playing, Dynamic Programming To Recover Optimal Strategies
-
Approaching Interactive Problems