Skip to content

Google Coding Round: Daily Plan (Days 1–32)

Google Coding Round: Daily Plan (Days 1–32)

Section titled “Google Coding Round: Daily Plan (Days 1–32)”

Built from the LeetCode Premium Google tag, frequency-sorted, 30-day and 3-month windows (pulled 2026-07-17). Google rotates questions, so this trains the distribution, not the paper: arrays/two-pointer, sliding window, binary search (especially on-answer), intervals/monotonic stack, heaps, graphs, light-to-medium DP, and design-lite. The plan is interleaved, not blocked: consecutive problems come from different domains, so recognizing the pattern is part of every rep — blocked practice pre-loads the answer to that question and produces fake confidence.

Protocol per problem (this is the actual interview skill): restate + ask one clarifying question about constraints → state brute force and its complexity in one sentence → name the target approach and complexity before coding → code cleanly, narrating → test on one normal + one edge case out loud → then ask yourself the Google follow-up: “what if the input doesn’t fit in memory / arrives as a stream / must be answered in O(1) per query?” Target: 25 min per medium, then stop and read the editorial regardless.

Daily shape (~75–90 min): warm-up easy (10 min) + 2 core mediums (50 min) + review yesterday’s misses (15 min). Hards are marked — attempt 15 minutes for the idea, then study the solution; Google rarely requires a full hard implementation, but the ideas (binary-search-on-answer, monotonic stack) show up inside mediums.

Domains are deliberately mixed within and across days — no “binary-search week.” Each problem should force the which pattern is this? decision cold, because that decision is most of the interview. If two problems in a row feel like the same tool, that’s a bug; tell me and I’ll reshuffle.

DayWarm-upCore
11. Two Sum (hash)33. Search in Rotated Sorted Array (binary search) · 102. Binary Tree Level Order Traversal (tree/BFS)
2206. Reverse Linked List (linked list)560. Subarray Sum Equals K (prefix-sum hash) · 253. Meeting Rooms II (intervals/heap)
320. Valid Parentheses (stack)3. Longest Substring Without Repeating Characters (sliding window) · 200. Number of Islands (graph/DFS) · implement: 912. Sort an Array — write mergesort by hand, no library sort
470. Climbing Stairs (DP)11. Container With Most Water (two pointers) · 875. Koko Eating Bananas (BS-on-answer)
5110. Balanced Binary Tree (tree)15. 3Sum (two pointers) · 322. Coin Change (DP) · hard idea: 42. Trapping Rain Water
6268. Missing Number (bit/math)146. LRU Cache (design) · 209. Minimum Size Subarray Sum (sliding window)
735. Search Insert Position (binary search)56. Merge Intervals (intervals) · 198. House Robber (DP) · implement: 208. Implement Trie from scratch
8121. Best Time to Buy and Sell Stock (array)394. Decode String (stack) · 994. Rotting Oranges (graph/BFS)
91046. Last Stone Weight (heap)5. Longest Palindromic Substring (string) · 162. Find Peak Element (binary search) · hard idea: 410. Split Array Largest Sum (BS-on-answer — high frequency at Google)
10169. Majority Element (array)2. Add Two Numbers (linked list) · 347. Top K Frequent Elements (heap/hash) · implement: 703. Kth Largest in a Stream — write the min-heap (sift-up/sift-down) yourself, no heapq
11496. Next Greater Element I (monotonic stack)904. Fruit Into Baskets (sliding window) · 215. Kth Largest Element in an Array (quickselect/heap)
12700. Search in a Binary Search Tree (tree)238. Product of Array Except Self (array) · 17. Letter Combinations of a Phone Number (backtracking) · implement: redo 912 as quicksort (in-place partition, randomized pivot) + 589. N-ary Tree Preorder iteratively
1369. Sqrt(x) (binary search)662. Maximum Width of Binary Tree (tree/BFS) · 8. String to Integer (atoi) (messy-spec simulation, very Google) · hard idea: 239. Sliding Window Maximum (deque) or 84. Largest Rectangle in Histogram
1488. Merge Sorted Array (two pointers)31. Next Permutation (array) · 300. Longest Increasing Subsequence (DP + binary search)
15359. Logger Rate Limiter (design-lite, Google staple)54. Spiral Matrix (simulation) · 1004. Max Consecutive Ones III (sliding window) · hard idea: 295. Find Median from Data Stream (two heaps)
DayFormat
1645-min mock, out loud: 2 unseen mediums from the 3-month list — suggested: 49. Group Anagrams + 1631. Path With Minimum Effort. Then full review.
1745-min mock: 1 unseen medium (152. Maximum Product Subarray) + 15-min hard-idea (41. First Missing Positive) + redo your two worst misses of the 17 days.

CS fundamentals checklist (from Google’s official prep guide)

Section titled “CS fundamentals checklist (from Google’s official prep guide)”

Google’s guide asks for more than tagged problems measure. Be able to do each of these cold — the implement slots above cover the hands-on ones:

  • Sorting: primers with traced diagrams for each: mergesort · quicksort · heapsort · counting/radix · external sort & k-way merge. Write mergesort AND quicksort from scratch (912, days 3 and 12); state their complexities, stability, in-place-ness, and when each loses (quicksort worst case, mergesort allocation). Know why Python/C++ use hybrids (Timsort/introsort). Beyond the two: heapsort is one sentence once you’ve built the day-10 heap (heapify + pop n times — in-place AND guaranteed n log n); counting/radix answers the “can you beat n log n?” follow-up (comparison lower bound vs O(n+k) for bounded keys); k-way merge / external sort answers the “data doesn’t fit in memory” escalation (spill sorted runs, min-heap merge — rehearse verbally once; it’s also the MapReduce shuffle story); quickselect (day 11, problem 215) answers “k-th largest without sorting.” Skip bubble/selection/shell entirely.
  • Heaps: implement sift-up/sift-down and heapify (703, day 10); know heapify is O(n) and why.
  • Hashtables: explain collision resolution (chaining vs open addressing), resize/amortization, and what makes a bad hash. Be ready to say when a hashtable is the WRONG choice (ordered iteration, range queries → tree).
  • Tries: implement insert/search/startsWith (208, day 7); know the space tradeoff vs hashing and when tries win (prefix queries, autocomplete — a Google favorite domain).
  • Balanced BSTs (red-black / AVL / splay): the bar is explain, not code: the invariant each maintains, why rotations restore it in O(1), why height stays O(log n), and the practical answer — “in production I’d use the language’s sorted container, which is typically a red-black tree.” Learn and practice from the dedicated primer: Balanced BSTs: AVL, Red-Black, Splay.
  • Trees generally: binary, n-ary (589, day 12), and traversals both recursive AND iterative (interviewers ask for the iterative version to test stack fluency).
  • Big-O: for every problem in this plan, state time AND space before coding — including the recursion-stack space people forget.

Code-quality bar (their words: clean, bug-free, edge cases, maintainability): real language, no pseudo-code; name variables like production code; handle empty/single/duplicate/overflow inputs unprompted; after coding, walk one test through the code line by line — that’s the “testing whiteboard code” bullet, and skipping it is the most common flag.

Days 18–32 — extension (re-pulled 2026-07-26)

Section titled “Days 18–32 — extension (re-pulled 2026-07-26)”

Built from a fresh pull of both windows after completing days 1–15. Rules of the extension: zero repeats of anything above (including mocks); the old maintenance pool is promoted into these days; topic proportions follow the current tag (graphs and backtracking got heavier since 7/17, sliding window thinner — the mix below tracks that while keeping every domain represented); the remaining implement-from-scratch gaps from the CS checklist (Dijkstra, heapsort, Union-Find, k-way merge) are assigned; and every day carries exactly one hard, two flavors: hard idea (fresh, 15-min protocol: get the idea, study the solution) and hard upgrade (a part-1 idea-only hard, now implemented fully — the ratchet from recognizing to producing). No mock days — run those on your own schedule.

DayWarm-upCoreDaily hard
18704. Binary Search (the canonical form, cold)128. Longest Consecutive Sequence (hash) · 55. Jump Game (greedy)upgrade: 42. Trapping Rain Water — full two-pointer implementation, no rereading
19redo a miss from days 1–1548. Rotate Image (matrix) · 207. Course Schedule (topo sort) · implement: 743. Network Delay Time — write Dijkstra with your own heap, no libraryidea: 51. N-Queens (top-30 in the current window)
20141. Linked List Cycle (Floyd)53. Maximum Subarray (Kadane — top-25 both windows) · 424. Longest Repeating Character Replacement (sliding window) · 62. Unique Paths (DP)upgrade: 84. Largest Rectangle in Histogram — full monotonic-stack implementation
21redo a miss22. Generate Parentheses (backtracking) · 287. Find the Duplicate Number (cycle / BS-on-value)idea: 4. Median of Two Sorted Arrays (partition BS — top-5 currently)
22189. Rotate Array (reversal trick)1288. Remove Covered Intervals (intervals/sort) · 138. Copy List with Random Pointer (linked list + hash)idea: 10. Regular Expression Matching (2-D DP on patterns)
23redo a miss503. Next Greater Element II (monotonic stack, circular) · 39. Combination Sum (backtracking) · implement: redo 912 as heapsort — heapify O(n), pop n times, fully in placeupgrade: 410. Split Array Largest Sum — full BS-on-answer implementation (the pattern is warm from Koko)
24283. Move Zeroes (two pointers)75. Sort Colors (Dutch flag) · 72. Edit Distance (2-D DP — say the recurrence before coding)idea: 2484. Count Palindromic Subsequences (recent signal, counting DP)
25redo a miss130. Surrounded Regions (DFS from the border — the inversion is the insight) · 6. Zigzag Conversion (simulation)idea: 135. Candy (two-pass greedy)
2694. Binary Tree Inorder Traversaliterative, explicit stack380. Insert Delete GetRandom O(1) (design) · 1358. Number of Substrings Containing All Three Characters (sliding window, count-the-lefts)upgrade: 239. Sliding Window Maximum — full deque implementation
27redo a miss148. Sort List (mergesort on a list — ties to the sorting checklist) · 79. Word Search (backtracking on a grid) · implement: 2492. Minimum Score of a Path Between Two Cities — write Union-Find (path compression + rank) yourselfimplement-hard: 25. Reverse Nodes in k-Group (pointer surgery under a clock)
2850. Pow(x, n) (fast exponentiation, negative n)863. All Nodes Distance K in Binary Tree (tree→graph + BFS) · 45. Jump Game II (greedy BFS-on-array)idea: 1301. Number of Paths with Max Score (grid DP carrying two values)
29redo a miss151. Reverse Words in a String (string, in-place discipline) · 540. Single Element in a Sorted Array (binary search on parity)idea: 1944. Number of Visible People in a Queue (monotonic stack)
3013. Roman to Integer (top-10 currently)1110. Delete Nodes And Return Forest (tree DFS with ownership — very current) · 16. 3Sum Closest (two pointers)upgrade: 295. Find Median from Data Stream — full two-heap implementation with rebalancing
31redo a miss137. Single Number II (bit counting) · 7. Reverse Integer (overflow discipline — the atoi cluster) · 2007. Find Original Array From Doubled Array (greedy + counting, recent signal) · implement: 21. Merge Two Sorted Lists, then extend verbally to k-way with a min-heap — the external-sort story, completing the checklistidea: 44. Wildcard Matching (contrast with day 22’s regex DP — what the * change does to the recurrence)
3266. Plus One (carry simulation)2812. Find the Safest Path in a Grid (multi-source BFS + BS-on-answer — two patterns composed, recent signal) · 131. Palindrome Partitioning (backtracking + palindrome DP)idea: 332. Reconstruct Itinerary (Hierholzer/Eulerian path)

The old maintenance pool is now fully consumed (every entry, including the hards, is scheduled above). New maintenance pool (high in the 7/26 pull, uncovered): 18. 4Sum (top-35, same tool family as 3Sum/3Sum-Closest — do it if that family ever misses), 73. Set Matrix Zeroes, 234. Palindrome Linked List, 167. Two Sum II, 977. Squares of a Sorted Array, 122. Best Time to Buy and Sell Stock II, 108. Convert Sorted Array to BST, 228. Summary Ranges, 680. Valid Palindrome II, 78. Subsets, 349. Intersection of Two Arrays, 1846. Maximum Element After Decreasing and Rearranging, 2150. Find All Lonely Numbers, 1967. Number of Strings That Appear as Substrings.

Appendix B: raw frequency order, 2026-07-26 pull

Section titled “Appendix B: raw frequency order, 2026-07-26 pull”

30 days (top, in order): Two Sum · Palindrome Number · Median of Two Sorted Arrays · Longest Substring w/o Repeating · 3Sum · Add Two Numbers · Best Time Buy/Sell · Roman to Integer · 1929 · Longest Consecutive · Longest Palindromic Substring · Merge Sorted Array · 26 · Merge Two Sorted Lists · Search Rotated · LRU Cache · Reverse Integer · Split Array Largest Sum · Valid Palindrome · Majority Element · Valid Anagram · Group Anagrams · Maximum Subarray · Longest Common Prefix · Subarray Sum K · atoi · N-Queens · Generate Parentheses · Sort Colors · Coin Change · Trapping Rain Water · Container Most Water · Network Delay Time · Pow · 4Sum · 380 · Largest Rectangle · Letter Combinations · Climbing Stairs · Regex Matching · Missing Number · Valid Parentheses · Sqrt · 122 · Fruit Into Baskets · 3Sum Closest · Sort List · 287 · Koko · Kth Largest · House Robber · Jump Game II · 135 Candy · 1110 · 863 · 137 · 228 · 1846 · 108 · Min Size Subarray · 2007 · Rotting Oranges · 1358 · 2812 · 278 · 39 · 680 · 332 · 141 · 138 · 876 · 238 · 912 · 662 · 2492 · 540 · 2484 · 1301 · 347.

3 months adds/emphasizes: Zigzag · Next Permutation · Merge Intervals · Course Schedule · Number of Islands · LIS · Logger Rate Limiter · Decode String · 424 · Koko · First Missing Positive · Rotate Image · Spiral · Jump Game · Unique Paths · Meeting Rooms II · 151 · Find Peak · Rotting Oranges · 73 · Edit Distance · 130 · 79 Word Search · 283 · 704 · Top K · Level Order · 977 · 167 · 44 · 131 · 78 · 349.

Re-pull the 30-day tag (it shifts) and convert to maintenance: one timed medium daily from the new maintenance pool above, one 45-min two-problem mock weekly. Anything missed twice goes on a spaced-repetition list: redo at +3 days and +10 days. (The original days-1–17 maintenance pool was promoted into days 18–32 and is retired.)

Appendix A: raw frequency order (top of each window, 2026-07-17)

Section titled “Appendix A: raw frequency order (top of each window, 2026-07-17)”

30 days: Two Sum · Add Two Numbers · Palindrome Number · Median of Two Sorted Arrays · Longest Substring w/o Repeating · Longest Consecutive Sequence · Trapping Rain Water · Sqrt(x) · Best Time to Buy/Sell · Container With Most Water · Merge Two Sorted Lists · Majority Element · Longest Common Prefix · 3Sum · Valid Parentheses · Subarray Sum Equals K · Pow(x,n) · Maximum Subarray · Climbing Stairs · Rotate Array · Min Size Subarray Sum · Longest Palindromic Substring · atoi · Search in Rotated Sorted Array · Combination Sum · Spiral Matrix · LRU Cache · House Robber · 540 · Next Permutation · Jump Game II · N-Queens · Kth Largest · Decode String · Split Array Largest Sum · Koko · Fruit Into Baskets · Sliding Window Maximum · Coin Change · 1944 · 994 · 1631 · 662 · 875…

3 months adds/emphasizes: Merge Intervals · Group Anagrams · Number of Islands · Meeting Rooms II · Top K Frequent · Jump Game · Largest Rectangle in Histogram · Level Order Traversal · Find Median from Data Stream · Next Greater Element I/II · LIS · Product of Array Except Self · Sort Colors · Logger Rate Limiter · Longest Repeating Character Replacement · First Missing Positive · Permutations · 81. Search Rotated II.

The 30-day list also contained a tail of very recent additions (1291, 1358, 1846, 2007, 2484, 2812) — worth one pass in maintenance mode as “recently reported” signals.