Learning Resources
A lightweight map of the study guides in this repository. Everything is written so you can move from concept to practice without wading through fluff.
Start here
-
Algorithm Patterns
Jump straight into the pattern library with short guides and worked examples.
-
Data Structures
Focused notes on arrays, hash tables, heaps, and tries with practice links.
-
Interview Preparation
Frameworks for planning, solving, and communicating under pressure.
-
Additional Topics
Quick hops to staple engineering articles and free resources.
-
Cloud AI Platforms
Hands-on guides for cloud AI services including Google Vertex AI.
Algorithm patterns at a glance
Each pattern links to detailed notes and a representative LeetCode problem.
| Pattern | Description | Links |
|---|---|---|
| Sliding Window | Optimize contiguous ranges in strings and arrays | Notes |
| Dynamic Programming | Break problems into overlapping subproblems and cache results | Notes |
| Two Pointers | Traverse from both ends or move pointers together to simplify scans | Notes |
| Fast & Slow Pointers | Detect cycles and middle points with offset pointer speeds | Notes |
| Backtracking | Explore search spaces with reversible choices | Notes · LC 46 |
| Binary Search on Answer | Probe candidate solutions to converge on optimal values | Notes · LC 875 |
| Greedy Algorithms | Make locally optimal choices with provable global wins | Notes · LC 45 |
| Heap / Priority Queue | Surface extremes quickly for scheduling and top-k problems | Notes · LC 347 |
| Monotonic Stack | Track next greater/smaller elements efficiently | Notes · LC 739 |
| Graph Traversal (BFS/DFS) | Systematically explore graphs and grids | Notes · LC 200 |
| Trie (Prefix Tree) | Speed up prefix queries and dictionary operations | Notes · LC 208 |
How to use these notes
- Start with Sliding Window to warm up, then branch into dynamic programming or graph traversal based on your goals.
- Keep a notebook nearby and rewrite solutions in your own words; it cements the intuition.
- Treat the examples as templates to refine, not scripts to memorize.