Skip to main content

23 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.

Welcome

Engineering knowledge base for practical learning, interview preparation, real-world system design, DSA training, banking systems, and cloud certification.