FAANG 30-Day
Pattern-match the 80% of FAANG questions that come from 20% of the canon.
By Alex Chen, Founder, InterviewChamp.AI · 30 problems · ~45h · difficulty: mixed · Last verified
Hash-map gateway. Drill the 'complement = target - num' phrasing — you'll narrate it dozens of times this month.
Single-pass running minimum. Second-most-asked array shape in real FAANG loops.
Two pointers, shrink from the side with the shorter wall. Classic 'why do we move this pointer?' interview probe.
Sort + fixed-anchor + two pointers. The first problem where you must articulate why O(n^2) is the floor.
Prefix + suffix passes. Watch for the 'no division' constraint — it's the whole interview signal.
Kadane's algorithm. First DP-flavored problem; learn to say 'reset when running sum goes negative'.
Frequency-counter template. Reuse it on group-anagrams, ransom-note, find-all-anagrams.
Sliding window with a set. Master the 'shrink left until valid' loop now — it powers 10+ string problems.
Sorted-string key OR character-count tuple. Pick one, defend the trade-off out loud.
Expand-around-center. Hit the gotcha: each index spawns TWO centers (odd and even length).
Iterative prev/curr/next. Drill until you can write it eyes-closed — it's the substrate for every linked-list problem.
Dummy head + tail pointer. The dummy trick is the entire trick — name it explicitly to the interviewer.
Three sub-routines: find middle, reverse second half, interleave. Each one is a problem you already solved.
Recursive height. Warm-up: base = null returns 0, recurse = 1 + max(left, right).
Swap and recurse. Famous because Max Howell flunked it at Google — don't be Max.
Carry (lo, hi) bounds down the recursion. The 'check each node against parent' shortcut is the wrong answer — interviewers test for that exact slip.
BFS with a queue, snapshot the queue size at each level. First level-by-level pattern — you'll see it again in graphs.
BST property = O(log n). Walk down: both values left? go left. Both right? go right. Otherwise current node IS the LCA.
Grid DFS with visited marking. The template for every 'count connected regions' problem you'll ever see.
Hash map old-node -> new-node, DFS through neighbors. The pattern: visited acts double-duty as the clone-lookup.
Topological sort via DFS-cycle-detection. Recognize the 'detect cycle in directed graph' shape — appears in every dependency-resolution interview.
Stack as a matcher. Push opens, pop+compare on close. The pattern that unlocks min-stack and daily-temperatures.
Monotonic decreasing stack. The unlock: store INDICES, not values, so you can compute the gap.
Min-heap of size k. The trade vs quickselect is the whole interview conversation — be ready to defend both.
Binary search where you compare mid to RIGHT, not target. First problem to break the 'binary search needs a target' mental model.
Decide which half is sorted, then check if target lives there. The branching is fiddly — write the four cases out loud.
Binary search on the ANSWER, not an index. Once you see this once, you see it everywhere — capacity-to-ship, split-array-largest-sum, etc.
Fibonacci in disguise. Use this to practice naming the recurrence BEFORE writing code: f(n) = f(n-1) + f(n-2).
Greedy: track the farthest reachable index. The DP solution exists but the greedy is the interview answer.
2D DP on intervals. Capstone for the month: you should now narrate state, transition, base, and answer-cell in under a minute.
Ready to drill these live?
Get the AI copilot in your ear during real interviews. Real-time transcription. Streaming answers. Post-call scorecard.
Download the desktop app →