the plan
10 weeks to interview-ready
Ten weeks is the full-time pace: a few hours a day. Less time? Keep the same order and let each week stretch, or let start here turn your own hours into dates. No grinding hundreds of problems — understand each pattern deeply, then repeat the must-dos.
- week1
Java for DSA
Know what your Java code does in memory, and reach for the right collection without thinking.
01 Java Memory02 Java Arrays & Strings03 Java OOP04 I/O & Debugging05 Java Toolkit
habit: Type every snippet yourself once. Copy-paste teaches your clipboard, not you.
- week2
Thinking tools
Read code like a computer, count its cost, trust recursion, and know the maths shortcuts.
06 Mindset07 Big-O08 Recursion09 Math & Numbers
- 509. Fibonacci NumberEasy
- 50. Pow(x, n)Medium
- 7. Reverse IntegerMedium
- 43. Multiply StringsMedium
- 528. Random Pick with WeightMedium
habit: Dry-run every example on paper before running it.
- week3
Arrays & pointers
Turn O(n²) loops into O(n) scans, in 1D and on grids.
10 Arrays & Strings11 Matrices12 Two Pointers13 Sliding Window
- 121. Best Time to Buy and Sell StockEasy
- 53. Maximum SubarrayMedium
- 169. Majority ElementEasy
- 238. Product of Array Except SelfMedium
- 242. Valid AnagramEasy
- 49. Group AnagramsMedium
- 31. Next PermutationMedium
- 41. First Missing PositiveHard
- 48. Rotate ImageMedium
- 54. Spiral MatrixMedium
- 73. Set Matrix ZeroesMedium
- 289. Game of LifeMedium
- 125. Valid PalindromeEasy
- 167. Two Sum II - Input Array Is SortedMedium
- 15. 3SumMedium
- 11. Container With Most WaterMedium
- 42. Trapping Rain WaterHard
- 88. Merge Sorted ArrayEasy
- 75. Sort ColorsMedium
- 3. Longest Substring Without Repeating CharactersMedium
- 424. Longest Repeating Character ReplacementMedium
- 567. Permutation in StringMedium
- 438. Find All Anagrams in a StringMedium
- 76. Minimum Window SubstringHard
- 209. Minimum Size Subarray SumMedium
- 1004. Max Consecutive Ones IIIMedium
habit: Write brute force first, then say why the faster version is correct.
- week4
Lookup & order
Trade memory for speed with hashing; master lists, stacks and queues.
14 Hashing15 Linked Lists16 Stacks17 Queues
- 1. Two SumEasy
- 217. Contains DuplicateEasy
- 128. Longest Consecutive SequenceMedium
- 303. Range Sum Query - ImmutableEasy
- 560. Subarray Sum Equals KMedium
- 206. Reverse Linked ListEasy
- 21. Merge Two Sorted ListsEasy
- 141. Linked List CycleEasy
- 234. Palindrome Linked ListEasy
- 19. Remove Nth Node From End of ListMedium
- 142. Linked List Cycle IIMedium
- 287. Find the Duplicate NumberMedium
- 143. Reorder ListMedium
- 2. Add Two NumbersMedium
- 25. Reverse Nodes in k-GroupHard
- 146. LRU CacheMedium
- 20. Valid ParenthesesEasy
- 155. Min StackMedium
- 150. Evaluate Reverse Polish NotationMedium
- 739. Daily TemperaturesMedium
- 84. Largest Rectangle in HistogramHard
- 394. Decode StringMedium
- 735. Asteroid CollisionMedium
- 232. Implement Queue using StacksEasy
- 622. Design Circular QueueMedium
- 239. Sliding Window MaximumHard
habit: Re-solve 2 must-dos from last week without looking.
- week5
Search, sort & parse
Halve the search space, know which sort Java uses and why, and parse input without panic.
18 Binary Search19 Sorting20 Parsing
- 704. Binary SearchEasy
- 35. Search Insert PositionEasy
- 34. Find First and Last Position of Element in Sorted ArrayMedium
- 33. Search in Rotated Sorted ArrayMedium
- 153. Find Minimum in Rotated Sorted ArrayMedium
- 875. Koko Eating BananasMedium
- 162. Find Peak ElementMedium
- 278. First Bad VersionEasy
- 912. Sort an ArrayMedium
- 179. Largest NumberMedium
- 148. Sort ListMedium
- 13. Roman to IntegerEasy
- 151. Reverse Words in a StringMedium
- 8. String to Integer (atoi)Medium
- 227. Basic Calculator IIMedium
- 224. Basic CalculatorHard
- 271. Encode and Decode StringsMedium
habit: State the loop invariant out loud for every binary search.
- week6
Trees
Think recursively about left and right; use heaps for top-k and tries for prefixes.
21 Traversals22 Tree Recursion23 BST24 Heaps25 Tries
- 94. Binary Tree Inorder TraversalEasy
- 102. Binary Tree Level Order TraversalMedium
- 199. Binary Tree Right Side ViewMedium
- 863. All Nodes Distance K in Binary TreeMedium
- 297. Serialize and Deserialize Binary TreeHard
- 104. Maximum Depth of Binary TreeEasy
- 226. Invert Binary TreeEasy
- 101. Symmetric TreeEasy
- 572. Subtree of Another TreeEasy
- 113. Path Sum IIMedium
- 1448. Count Good Nodes in Binary TreeMedium
- 437. Path Sum IIIMedium
- 543. Diameter of Binary TreeEasy
- 124. Binary Tree Maximum Path SumHard
- 236. Lowest Common Ancestor of a Binary TreeMedium
- 450. Delete Node in a BSTMedium
- 98. Validate Binary Search TreeMedium
- 230. Kth Smallest Element in a BSTMedium
- 235. Lowest Common Ancestor of a Binary Search TreeMedium
- 285. Inorder Successor in BSTMedium
- 173. Binary Search Tree IteratorMedium
- 703. Kth Largest Element in a StreamEasy
- 215. Kth Largest Element in an ArrayMedium
- 347. Top K Frequent ElementsMedium
- 973. K Closest Points to OriginMedium
- 23. Merge k Sorted ListsHard
- 295. Find Median from Data StreamHard
- 208. Implement Trie (Prefix Tree)Medium
- 211. Design Add and Search Words Data StructureMedium
- 212. Word Search IIHard
- 1268. Search Suggestions SystemMedium
habit: Draw the tree. Always. Even for easy problems.
- week7
Graphs
BFS for shortest steps, DFS for exploration, Dijkstra for weights, low-links for weak spots.
26 Graphs27 Shortest Paths28 Union-Find & MST29 Topo Sort30 Advanced Graphs
- 200. Number of IslandsMedium
- 695. Max Area of IslandMedium
- 133. Clone GraphMedium
- 994. Rotting OrangesMedium
- 542. 01 MatrixMedium
- 785. Is Graph Bipartite?Medium
- 1091. Shortest Path in Binary MatrixMedium
- 127. Word LadderHard
- 743. Network Delay TimeMedium
- 787. Cheapest Flights Within K StopsMedium
- 1631. Path With Minimum EffortMedium
- 1334. Find the City With the Smallest Number of Neighbors at a Threshold DistanceMedium
- 2290. Minimum Obstacle Removal to Reach CornerHard
- 547. Number of ProvincesMedium
- 684. Redundant ConnectionMedium
- 261. Graph Valid TreeMedium
- 721. Accounts MergeMedium
- 1584. Min Cost to Connect All PointsMedium
- 207. Course ScheduleMedium
- 210. Course Schedule IIMedium
- 269. Alien DictionaryHard
- 310. Minimum Height TreesMedium
- 329. Longest Increasing Path in a MatrixHard
- 332. Reconstruct ItineraryHard
- 1192. Critical Connections in a NetworkHard
- 399. Evaluate DivisionMedium
habit: Model the problem as nodes + edges before writing any code.
- week8
Search spaces
Explore choices systematically; know when greedy is safe.
31 Backtracking32 Greedy33 Intervals34 Bits
- 78. SubsetsMedium
- 77. CombinationsMedium
- 90. Subsets IIMedium
- 46. PermutationsMedium
- 39. Combination SumMedium
- 22. Generate ParenthesesMedium
- 79. Word SearchMedium
- 51. N-QueensHard
- 55. Jump GameMedium
- 45. Jump Game IIMedium
- 134. Gas StationMedium
- 678. Valid Parenthesis StringMedium
- 56. Merge IntervalsMedium
- 57. Insert IntervalMedium
- 435. Non-overlapping IntervalsMedium
- 253. Meeting Rooms IIMedium
- 136. Single NumberEasy
- 191. Number of 1 BitsEasy
- 338. Counting BitsEasy
- 268. Missing NumberEasy
- 67. Add BinaryEasy
habit: Draw the decision tree for the first two levels.
- week9
Dynamic programming
Recursion → memo → table, then the families: states, two strings, knapsack, intervals.
35 Dynamic Programming36 DP Patterns
- 70. Climbing StairsEasy
- 198. House RobberMedium
- 213. House Robber IIMedium
- 91. Decode WaysMedium
- 152. Maximum Product SubarrayMedium
- 139. Word BreakMedium
- 322. Coin ChangeMedium
- 416. Partition Equal Subset SumMedium
- 62. Unique PathsMedium
- 300. Longest Increasing SubsequenceMedium
- 1143. Longest Common SubsequenceMedium
- 72. Edit DistanceMedium
- 5. Longest Palindromic SubstringMedium
- 309. Best Time to Buy and Sell Stock with CooldownMedium
- 188. Best Time to Buy and Sell Stock IVHard
- 10. Regular Expression MatchingHard
- 97. Interleaving StringMedium
- 647. Palindromic SubstringsMedium
- 494. Target SumMedium
- 1235. Maximum Profit in Job SchedulingHard
habit: Write the state and the recurrence in one sentence before any code.
- week10
Design & final boss
Compose structures to hit a target cost, then range queries and string matching. Then mock interviews.
37 Design DS38 Range Queries & Strings
- 380. Insert Delete GetRandom O(1)Medium
- 981. Time Based Key-Value StoreMedium
- 895. Maximum Frequency StackHard
- 307. Range Sum Query - MutableMedium
- 315. Count of Smaller Numbers After SelfHard
- 28. Find the Index of the First Occurrence in a StringEasy
- 1392. Longest Happy PrefixHard
habit: Two timed mock interviews (45 min) — talk the whole time.