- 250+ problems solved in Java, strongest in Tree (87) and DP (24)
- Weak areas: Graph, Greedy, Sliding Window, Trie, Topological Sort, Union Find (1-2 each)
| Topic | Target | Focus |
|---|---|---|
| Array/Two Pointers | +10 | Prefix sum, in-place ops, 3Sum variants |
| Hash Table | +8 | Frequency maps, grouping, two-sum variants |
| String | +8 | Substring problems, palindromes, parsing |
| Sliding Window | +8 | Fixed/variable window, min/max substring |
| Stack/Queue | +6 | Monotonic stack, next greater element, calculator |
| Topic | Target | Focus |
|---|---|---|
| Binary Search | +6 | Search on answer, rotated array, matrix search |
| Sorting | +6 | Custom comparators, merge sort apps, bucket sort |
| Greedy | +8 | Intervals, jump game, task scheduler |
| Backtracking | +8 | Permutations, combinations, constraint satisfaction |
| Recursion | +4 | Divide and conquer, memoization bridge to DP |
| Topic | Target | Focus |
|---|---|---|
| Graph | +10 | BFS/DFS on grid, shortest path (Dijkstra, BFS), cycle detection |
| Trie | +5 | Word search II, autocomplete, prefix matching |
| Union Find | +5 | Connected components, accounts merge, redundant connection |
| Heap | +5 | Top-K, median stream, merge K sorted lists |
| Topological Sort | +4 | Course schedule, alien dictionary, build order |
| Topic | Target | Focus |
|---|---|---|
| Dynamic Programming | +10 | Knapsack, interval DP, bitmask DP, string DP |
| Segment Tree/BIT | +4 | Range query, range update |
| Design | +5 | LRU/LFU cache, iterator, rate limiter |
| Combination/Mock | — | Mixed topic practice, timed sessions |
| Day | Activity | Time |
|---|---|---|
| Mon-Fri | 2-3 new problems (topic of the week) | 1.5-2 hr |
| Sat | Review wrong/slow problems from the week | 1 hr |
| Sun | 1 timed mock interview (2 problems, 45 min) | 1 hr |
- Read — understand constraints, edge cases (3 min)
- Plan — identify pattern, write approach in comments (5 min)
- Code — implement cleanly (15-20 min)
- Test — dry run with examples + edge cases (5 min)
- Optimize — can you improve time/space? (5 min)
- If stuck >25 min — read hint/solution, then re-implement from scratch
- Sliding Window — variable/fixed size
- Two Pointers — same/opposite direction
- BFS/DFS — trees, graphs, grids, backtracking
- Binary Search on Answer — min of max, max of min
- Monotonic Stack — next greater/smaller
- Union Find — dynamic connectivity
- DP State Design — what defines a subproblem?
- Topological Sort — dependency ordering
- Interval Merge/Sweep Line — overlapping ranges
- Prefix Sum/Diff Array — range queries in O(1)