My journey through Elements of Programming Interviews in Python.
| Metric | Exposure | Mastery |
|---|---|---|
| Remaining | 32 | 19 |
| Target Date | Dec 24 (7d) | Dec 31 (14d) |
| Rate Needed | 4.6/day | 1.4/day |
| Status | +1.3 ahead | +7.0 ahead |
Mastered: 12/20 (60%) ✅✅✅✅✅✅✅✅✅✅✅✅⬜⬜⬜⬜⬜⬜⬜⬜
| Category | Status | Target Score | Actual Score | Target Time | Actual Time | Last Drilled |
|---|---|---|---|---|---|---|
| 01-bitwise | ✅ | 17/17 | 17/17 | 8:30 | 7:37 | 2025-12-04 |
| 02-arrays | ✅ | 19/19 | 19/19 | 9:30 | 4:38 | 2025-12-04 |
| 03-strings | ✅ | 19/19 | 19/19 | 9:30 | 2:25 | 2025-12-05 |
| 04-linked-lists | ✅ | 15/15 | 15/15 | 7:30 | 7:11 | 2025-12-03 |
| 05-stacks-queues | ✅ | 16/16 | 16/16 | 8:00 | 3:00 | 2025-12-05 |
| 06-binary-trees | ✅ | 21/21 | 21/21 | 10:30 | 3:42 | 2025-12-13 |
| 07-dicts-basics | ✅ | 23/23 | 23/23 | 11:30 | 4:37 | 2025-12-15 |
| 08-ordereddict | ✅ | 8/8 | 8/8 | 4:00 | 3:11 | 2025-12-15 |
| 09-counter | ✅ | 11/11 | 11/11 | 5:30 | 2:24 | 2025-12-13 |
| 10-sortedcontainers | ✅ | 13/13 | 13/13 | 6:30 | 3:12 | 2025-12-13 |
| 11-functools | ✅ | 7/7 | 7/7 | 3:00 | 2:56 | 2025-12-13 |
| 12-file-io | ✅ | 13/13 | 13/13 | 6:30 | 3:47 | 2025-12-13 |
| 13-csv | ⬜ | 23/23 | 17/23 | 11:30 | 12:11 | 2025-12-16 |
| 14-pathlib-basics | ⬜ | 16/16 | 9/16 | 8:00 | 8:02 | 2025-12-16 |
| 15-pathlib-ops | ⬜ | 12/12 | 4/12 | 6:00 | 4:19 | 2025-12-16 |
| 16-regex | ⬜ | 21/21 | 15/21 | 10:30 | 4:29 | 2025-12-06 |
| 17-regex-python | ⬜ | 8/8 | 3/8 | 4:00 | 2:38 | 2025-12-06 |
| 18-heaps | ⬜ | 23/23 | 21/23 | 11:30 | 6:59 | 2025-12-09 |
| 19-sets | ⬜ | 25/25 | 23/25 | 12:30 | 5:03 | 2025-12-09 |
| 20-itertools | ⬜ | — | — | 10:00 | — | — |
Attempted: 54/59 (92%)
☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️
☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️
☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️⬜⬜⬜⬜⬜
Mastered: 40/59 (68%)
🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆
🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜
| Icon | Tier | Description |
|---|---|---|
| ☑️ | Attempted | Problems attempted but not yet solved |
| 👍 | Solved | Problems solved (with or without help) |
| 💪 | Independent | Problems solved without hints or looking at solutions |
| 🏆 | Mastered | Problems solved independently in ≤20 min with optimal solution |
See Problem-Solving Workflow for visual diagrams of the learning approach.
Attempted: 16/16 (100%) ☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️
Mastered: 14/16 (88%) 🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆⬜⬜
| # | Problem | Chapter | LeetCode | Difficulty | Status | Attempts | Best Time |
|---|---|---|---|---|---|---|---|
| 4.01 | Computing the parity of a word | Ch 4: Primitive Types | #191 | Easy | 🏆 | 3 | 2 min |
| 5.01 | The Dutch national flag problem | Ch 5: Arrays | #75 | Medium | 🏆 | 2 | 4 min |
| 5.06 | Buy and sell a stock once | Ch 5: Arrays | #121 | Easy | 🏆 | 2 | 5 min |
| 6.01 | Interconvert strings and integers | Ch 6: Strings | #8 | Medium | 🏆 | 2 | 13 min |
| 7.01 | Merge two sorted lists | Ch 7: Linked Lists | #21 | Easy | 🏆 | 2 | 3 min |
| 8.01 | Implement a stack with max API | Ch 8: Stacks and Queues | #155 | Medium | 💪 | 2 | 3 min |
| 9.01 | Test if a binary tree is height-balanced | Ch 9: Binary Trees | #110 | Easy | 🏆 | 2 | 7 min |
| 10.01 | Merge sorted files | Ch 10: Heaps | #23 | Hard | 🏆 | 2 | 11 min |
| 11.01 | Search a sorted array for first occurrence of k | Ch 11: Searching | #34 | Medium | 🏆 | 2 | 6 min |
| 12.02 | Is an anonymous letter constructible? | Ch 12: Hash Tables | #383 | Easy | 🏆 | 2 | 4 min |
| 13.01 | Compute the intersection of two sorted arrays | Ch 13: Sorting | #349 | Easy | 🏆 | 2 | 7 min |
| 14.01 | Test if a binary tree satisfies the BST property | Ch 14: Binary Search Trees | #98 | Medium | 🏆 | 2 | 10 min |
| 15.01 | The Towers of Hanoi problem | Ch 15: Recursion | #08.06 | Easy | 🏆 | 2 | 9 min |
| 16.01 | Count the number of score combinations | Ch 16: Dynamic Programming | #518 | Medium | 🏆 | 2 | 20 min |
| 17.04 | The 3-sum problem | Ch 17: Greedy Algorithms and Invariants | #15 | Medium | 🏆 | 2 | 9 min |
| 18.01 | Search a maze | Ch 18: Graphs | 👍 | 2 |
Attempted: 20/20 (100%) ☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️
Mastered: 15/20 (75%) 🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆⬜⬜⬜⬜⬜
| # | Problem | Chapter | LeetCode | Difficulty | Status | Attempts | Best Time |
|---|---|---|---|---|---|---|---|
| 4.07 | Compute pow(x,y) | Ch 4: Primitive Types | #50 | Medium | 🏆 | 2 | 8 min |
| 5.12 | Sample offline data | Ch 5: Arrays | #384 | Medium | 🏆 | 2 | 1 min |
| 5.18 | Compute the spiral ordering of a 2D array | Ch 5: Arrays | #54 | Medium | 💪 | 2 | 21 min |
| 6.02 | Base conversion | Ch 6: Strings | #504 | Easy | 🏆 | 2 | 12 min |
| 6.04 | Replace and remove | Ch 6: Strings | 🏆 | 2 | 18 min | ||
| 7.02 | Reverse a single sublist | Ch 7: Linked Lists | #92 | Medium | 🏆 | 2 | 7 min |
| 7.03 | Test for cyclicity | Ch 7: Linked Lists | #141 | Easy | 🏆 | 2 | 3 min |
| 8.06 | Compute binary tree nodes in order of increasing depth | Ch 8: Stacks and Queues | #102 | Medium | 🏆 | 2 | 13 min |
| 9.04 | Compute the LCA when nodes have parent pointers | Ch 9: Binary Trees | 🏆 | 2 | 8 min | ||
| 10.04 | Compute the k closest stars | Ch 10: Heaps | #973 | Medium | 🏆 | 2 | 7 min |
| 11.04 | Compute the integer square root | Ch 11: Searching | #69 | Easy | 🏆 | 2 | 4 min |
| 11.08 | Find the kth largest element | Ch 11: Searching | #215 | Medium | 🏆 | 2 | 12 min |
| 12.03 | Implement an ISBN cache | Ch 12: Hash Tables | #146 | Medium | 🏆 | 2 | 14 min |
| 13.02 | Merge two sorted arrays | Ch 13: Sorting | #88 | Easy | 🏆 | 2 | 6 min |
| 14.02 | Find the first key greater than a given value in a BST | Ch 14: Binary Search Trees | 🏆 | 2 | 3 min | ||
| 14.03 | Find the k largest elements in a BST | Ch 14: Binary Search Trees | #230 | Medium | 🏆 | 1 | 3 min |
| 15.02 | Generate all nonattacking placements of n-Queens | Ch 15: Recursion | #51 | Hard | 👍 | 1 | |
| 16.02 | Compute the Levenshtein distance | Ch 16: Dynamic Programming | #72 | Hard | 👍 | 1 | |
| 17.06 | The gasup problem | Ch 17: Greedy Algorithms and Invariants | #134 | Medium | 👍 | 1 | |
| 18.07 | Transform one string to another | Ch 18: Graphs | #127 | Hard | 👍 | 1 |
Attempted: 18/23 (78%) ☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️☑️⬜⬜ ⬜⬜⬜
Mastered: 11/23 (48%) 🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆🏆⬜⬜⬜⬜⬜⬜⬜⬜⬜ ⬜⬜⬜
| # | Problem | Chapter | LeetCode | Difficulty | Status | Attempts | Best Time |
|---|---|---|---|---|---|---|---|
| 4.08 | Reverse digits | Ch 4: Primitive Types | #7 | Medium | 🏆 | 1 | 4 min |
| 5.02 | Increment an arbitrary-precision integer | Ch 5: Arrays | #66 | Easy | 💪 | 1 | 8 min |
| 5.17 | The Sudoku checker problem | Ch 5: Arrays | #36 | Medium | 🏆 | 1 | 16 min |
| 6.05 | Test palindromicity | Ch 6: Strings | #125 | Easy | 🏆 | 1 | 9 min |
| 6.06 | Reverse all the words in a sentence | Ch 6: Strings | #151 | Medium | 👍 | 1 | |
| 7.04 | Test for overlapping lists---lists are cycle-free | Ch 7: Linked Lists | #160 | Easy | 🏆 | 2 | 11 min |
| 7.07 | Remove the kth last element from a list | Ch 7: Linked Lists | #19 | Medium | 🏆 | 1 | 8 min |
| 8.02 | Evaluate RPN expressions | Ch 8: Stacks and Queues | #150 | Medium | 👍 | 1 | |
| 8.07 | Implement a circular queue | Ch 8: Stacks and Queues | #622 | Medium | 👍 | 1 | |
| 9.02 | Test if a binary tree is symmetric | Ch 9: Binary Trees | #101 | Easy | 👍 | 1 | |
| 9.12 | Reconstruct a binary tree from traversal data | Ch 9: Binary Trees | #105 | Medium | 👍 | 1 | |
| 10.03 | Sort an almost-sorted array | Ch 10: Heaps | 🏆 | 1 | 16 min | ||
| 11.03 | Search a cyclically sorted array | Ch 11: Searching | #33 | Medium | 🏆 | 1 | 15 min |
| 11.09 | Find the missing IP address | Ch 11: Searching | ☑️ | 1 | |||
| 12.01 | Test for palindromic permutations | Ch 12: Hash Tables | 🏆 | 1 | 5 min | ||
| 12.05 | Find the nearest repeated entries in an array | Ch 12: Hash Tables | #219 | Easy | 🏆 | 1 | 12 min |
| 13.05 | Render a calendar | Ch 13: Sorting | 🏆 | 1 | 18 min | ||
| 14.04 | Compute the LCA in a BST | Ch 14: Binary Search Trees | #235 | Medium | 🏆 | 1 | 8 min |
| 15.03 | Generate permutations | Ch 15: Recursion | #46 | Medium | |||
| 16.03 | Count the number of ways to traverse a 2D array | Ch 16: Dynamic Programming | #62 | Medium | |||
| 16.06 | The knapsack problem | Ch 16: Dynamic Programming | #416 | Medium | |||
| 17.05 | Find the majority element | Ch 17: Greedy Algorithms and Invariants | #169 | Easy | |||
| 18.02 | Paint a Boolean matrix | Ch 18: Graphs | #733 | Easy |
| # | Problem | Status | Attempts | Best Time |
|---|---|---|---|---|
| P1.01 | CSV Sales Report | 🏆 | 1 | 10 min |
| P2.01 | Flatten Nested JSON | |||
| P3.01 | Log File Parser | |||
| P4.01 | API Pagination Handler | |||
| P5.01 | SQL Aggregation Query | |||
| P6.01 | File Organizer |
| # | Problem | Status | Attempts | Best Time |
|---|---|---|---|---|
| T1.01 | NBBO Snapshotter | |||
| T1.02 | Implied Vol Calculator | |||
| T1.03 | Risk Aggregation (Greeks) | |||
| T1.04 | P&L Explain Parser | |||
| T1.05 | L2 Order Book Stitcher | |||
| T1.06 | FIX Log Parser | |||
| T1.07 | IV Surface Cleaner | |||
| T1.08 | Fee Schedule Calculator | |||
| T1.09 | PCAP Latency Analyzer | |||
| T1.10 | Binary Feed Parser | |||
| T1.11 | Exercise/Assignment Simulator | |||
| T1.12 | Backtest Event Joiner |
| # | Problem | Status | Attempts | Best Time |
|---|---|---|---|---|
| M1.01 | Linear Regression (Normal Equation) | |||
| M1.02 | Logistic Regression (Gradient Descent) | |||
| M1.03 | K-Nearest Neighbors | |||
| M1.04 | K-Means Clustering | |||
| M1.05 | Decision Tree Classifier | |||
| M2.01 | Gradient Descent Variants | |||
| M2.02 | Cross-Entropy Loss & Gradient | |||
| M2.03 | Numerical Gradient Checker | |||
| M3.01 | K-Fold Cross Validation | |||
| M3.02 | L1/L2 Regularized Regression | |||
| M4.01 | sklearn Pipeline Builder | |||
| M4.02 | Custom sklearn Transformer | |||
| M5.01 | ROC Curve & AUC | |||
| M5.02 | Precision-Recall Curve | |||
| M5.03 | Confusion Matrix Metrics |
Last updated: 2025-12-17
