CodeQuest: 30-Days LeetCode Mastery
DSA Challenge [100 Essential Problems]
Created by: coding_error1
Week 1: Arrays and Strings
Day 1: Array Basics
1. Two Sum
2. Best Time to Buy and Sell Stock
3. Contains Duplicate
Day 2: Array Techniques
4. Product of Array Except Self
5. Maximum Subarray
6. 0️⃣ Move Zeroes
Day 3: String Manipulation
7. Valid Anagram
8. Valid Palindrome
9. Longest Substring Without Repeating Characters
Day 4: More Strings
10. Reverse String
11. String to Integer (atoi)
12. Longest Common Prefix
Week 2: Linked Lists and Stacks/Queues
Day 5: Linked List Basics
13. Reverse Linked List
14. Linked List Cycle
15. Merge Two Sorted Lists
Day 6: Advanced Linked Lists
16. Remove Nth Node From End of List
17. Intersection of Two Linked Lists
18. Palindrome Linked List
Day 7: Stacks and Queues
19. Valid Parentheses
20. Implement Queue using Stacks
21. Min Stack
22. Evaluate Reverse Polish Notation
Week 3: Binary Trees and Binary Search Trees
Day 8: Binary Tree Traversal
23. Binary Tree Inorder Traversal
24. Maximum Depth of Binary Tree
25. Symmetric Tree
Day 9: Binary Tree Operations
26. Invert Binary Tree
27. Path Sum
28. Lowest Common Ancestor of a Binary Tree
Day 10: Binary Search Trees
29. Validate Binary Search Tree
30. Kth Smallest Element in a BST
31. Convert Sorted Array to Binary Search Tree
Week 4: Searching and Sorting
Day 11: Binary Search
32. Binary Search
33. First Bad Version
34. Search in Rotated Sorted Array
35. Find Minimum in Rotated Sorted Array
Day 12: Sorting Algorithms
36. Sort Colors
37. Merge Intervals
38. Meeting Rooms II
Day 13: More Searching
39. Find Peak Element
40. Kth Largest Element in an Array
41. Search a 2D Matrix
Week 5: Dynamic Programming
Day 14: DP Introduction
42. Climbing Stairs
43. House Robber
44. Maximum Subarray
Day 15: 1D Dynamic Programming
45. Coin Change
46. Longest Increasing Subsequence
47. Word Break
Day 16: 2D Dynamic Programming
48. Unique Paths
49. Longest Common Subsequence
50. Maximum Product Subarray
Week 6: Graphs and BFS/DFS
Day 17: Graph Basics
51. Number of Islands
52. Clone Graph
53. Course Schedule
Day 18: BFS
54. Word Ladder
55. Minimum Depth of Binary Tree
56. Rotting Oranges
Day 19: DFS
57. Pacific Atlantic Water Flow
58. Surrounded Regions
59. Flood Fill
60. Graph Valid Tree
Week 7: Heap, Priority Queue, and Trie
Day 20: Heaps and Priority Queues
61. Top K Frequent Elements
62. Merge K Sorted Lists
63. Find Median from Data Stream
Day 21: More Heap Applications
64. K Closest Points to Origin
65. Sliding Window Maximum
66. Task Scheduler
Day 22: Trie
67. Implement Trie (Prefix Tree)
68. Word Search II
69. Design Add and Search Words Data Structure
Week 8: Bitwise Operations and Math
Day 23: Bit Manipulation
70. 1️⃣ Single Number
71. Counting Bits
72. Number of 1 Bits
73. Missing Number
Day 24: Math Problems
74. Pow(x, n)
75. Happy Number
76. Excel Sheet Column Number
77. 0️⃣ Factorial Trailing Zeroes
Week 9: Design and Advanced Topics
Day 25: System Design Questions
78. LRU Cache
79. Design Twitter
80. Serialize and Deserialize Binary Tree
Day 26: Advanced Techniques
81. Meeting Rooms II
82. Trapping Rain Water
83. Find the Duplicate Number
84. Longest Consecutive Sequence
Week 10: More Advanced Topics and Review
Day 27: Sliding Window
85. Minimum Window Substring
86. Sliding Window Maximum
87. Longest Repeating Character Replacement
Day 28: Greedy Algorithms
88. Jump Game
89. Gas Station
90. ↔️ Non-overlapping Intervals
91. Partition Labels
Day 29: Backtracking
92. Letter Combinations of a Phone Number
93. Generate Parentheses
94. Permutations
95. Subsets
96. Word Search
Day 30: Final Review and Challenging Problems
97. Longest Palindromic Substring
98. Longest Increasing Path in a Matrix
99. Alien Dictionary
100. Median of Two Sorted Arrays
Study Tips
1. Consistent Practice: Solve at least the daily questions, even if just for 1-2 hours
2. Understand Solutions: Don't just solve problems, understand the approach
3. Time Your Solutions: Practice with a timer to prepare for real interviews
4. Review Regularly: Go back to problems you've solved to reinforce learning
5. Track Progress: Keep notes on problem patterns and techniques you learn
Good luck with your 30-day LeetCode challenge!