Skip to main content

21 docs tagged with "dsa"

View all tags

Week 1: Arrays, Strings & Prefix Sums

Master contiguous memory structures in Java, including static arrays and string immutability, and optimize range queries using the Prefix Sum pattern.

Week 10: Recursion & Backtracking

Master the art of recursive thinking and the 'Choose-Explore-Unchoose' pattern. Learn to solve complex combinatorial problems like permutations, combinations, and grid-based searches in Java.

Week 13: Dynamic Programming I (1D)

Enter Phase 4 by conquering Dynamic Programming. Learn to identify overlapping subproblems and map recursion to bottom-up tabulation and memoization in Java.

Week 14: Dynamic Programming II (2D)

Master multi-dimensional Dynamic Programming. Learn to solve Grid Traversals, String Alignments (LCS, Edit Distance), and 2D space optimization in Java.

Week 15: Advanced Sliding Windows

Master the variable-size sliding window pattern in Java. Learn to dynamically expand and shrink boundaries to solve complex substring, subarray, and stream processing problems.

Week 16: Tries (Prefix Trees)

Master the Trie data structure for lightning-fast string manipulation. Learn to build Autocomplete systems, handle wildcard searches, and optimize multi-word grid searches in Java.

Week 17: Shortest Paths & MST

Begin Phase 5 by conquering weighted graphs. Master Dijkstra's Algorithm for finding the shortest path and Prim's Algorithm for building Minimum Spanning Trees in Java.

Week 18: Disjoint Set Union (Union-Find)

Master the Disjoint Set Union (DSU) data structure. Learn how to dynamically track connected components and optimize with Path Compression and Union by Rank in Java.

Week 19: Bit Manipulation & Math

Shift from high-level data structures to low-level CPU operations. Master XOR properties, Bit Masking, signed vs. unsigned shifts, and core Number Theory in Java.

Week 4: Hash Tables & Sets

Master Hash Maps and Hash Sets in Java. Learn about O(1) lookups, collision resolution, frequency counting, and the equals() and hashCode() contract.

Week 5: Stacks, Queues & Monotonic Stack

Transition to Phase 2 by mastering LIFO and FIFO data structures. Learn why to avoid Java's legacy Stack class and dive deep into the highly-tested Monotonic Stack pattern.

Week 6: Binary Trees & BSTs

Move from linear to hierarchical data structures. Master Depth-First Search (DFS), Breadth-First Search (BFS), and the properties of Binary Search Trees in Java.

Week 7: Graph Foundations

Transition from trees to general networks. Master graph representations, Adjacency Lists, and grid-based DFS/BFS traversals in Java.

Week 8: Advanced Graph Concepts

Master Directed Acyclic Graphs (DAGs), cycle detection in directed graphs, and dependency resolution using Kahn's Algorithm (Topological Sort) in Java.

Week 9: Binary Search & The Answer Space

Start Phase 3 by mastering logarithmic time complexity. Learn standard Binary Search, handling rotated arrays, and the advanced "Binary Search on Answer Space" pattern in Java.