Data Structures & Algorithms
Language-agnostic algorithmic foundations with Java examples and Java Collections mapping. Big-O, classic data structures, algorithm paradigms, and interview pattern recognition.
Big-O, Big-Theta, Big-Omega, Amortized Analysis
Asymptotic notation, amortized analysis, best/avg/worst case, the master theorem, and why constants still matter at small n.
Arrays & Strings
Dynamic-array amortization, the two-pointer and sliding-window patterns, prefix sums, and in-place array tricks.
Linked Lists
Singly/doubly/circular lists, Floyd's cycle detection, the dummy-head pattern, and in-place reversal.
Stacks & Queues
LIFO/FIFO semantics, monotonic stacks, deques, and why ArrayDeque is the modern default for both.
Hash Tables
Hashing, collision resolution, load factor and rehashing, hash functions, and the HashMap/HashSet/LinkedHashMap mapping. The single highest-leverage interview topic.
Binary Trees & Binary Search Trees
Tree terminology, the four traversals, BST invariants and operations, and why unbalanced BSTs degrade to O(n).
Balanced Trees — AVL, Red-Black, B-trees
Why balancing matters, AVL rotations, the five red-black invariants, and why databases use B-trees. Maps to TreeMap/TreeSet and HashMap treeification.
Heaps & Priority Queues
Binary-heap invariant and array representation, O(n) build-heap, heap sort, top-K, and the two-heap streaming-median technique.
Tries (Prefix Trees)
Trie node structure, insert/search/prefix operations, space/time trade-offs, and applications like autocomplete and word search.
Graphs — Representation, BFS, DFS
Adjacency list vs matrix, BFS for unweighted shortest path, DFS for connectivity/cycles, topological sort, and connected components.
Shortest Path & Minimum Spanning Tree
Dijkstra, Bellman-Ford, Floyd-Warshall, A*, and the two MST algorithms (Kruskal and Prim).
Union-Find (Disjoint Set Union)
Path compression, union by rank/size, near-constant amortized time (inverse Ackermann), and the classic applications.
Sorting Algorithms
Comparison and non-comparison sorts, stability and in-place properties, the Ω(n log n) lower bound, and what Arrays.sort/Collections.sort actually use.
Searching & Binary Search
Binary search and its four classic bugs, the overflow-safe midpoint, binary search on the answer, and boundary-finding variants.
Recursion & Backtracking
Base/recursive cases, the call stack, why Java does not optimize tail recursion, and the backtracking template with pruning.
Dynamic Programming
Overlapping subproblems and optimal substructure, memoization vs tabulation, finding the state, space optimization, and the knapsack family. The highest-leverage senior topic.
Greedy Algorithms
The greedy-choice property, when greedy works vs when it fails, the exchange argument, and how to decide greedy vs DP.
Bit Manipulation
Java's bitwise operators (including >>>), the common bit tricks, XOR properties, and bitmask enumeration/DP.
Math & Number Theory
GCD/LCM, modular arithmetic, prime testing, the Sieve of Eratosthenes, fast exponentiation, and combinatorics basics.
Pattern Recognition for Interview Problems
The meta-skill that separates senior from middle candidates: mapping a problem statement to the right algorithmic pattern.