The final frontier. Phase 3 is where good problem-solvers become great ones — tackling Hard-level DSA problems that appear in FAANG interviews, competitive programming, and real-world system design.
- Phase 3 Objective
- Topics Covered
- Progress Tracker
- Problem Log
- Key Learnings
- How to Use This Repo
- Full Challenge Journey
- Author
Phase 3 is the most demanding leg of the 100 Days challenge. The focus shifts from understanding patterns to mastering them under pressure — optimizing for time, space, and elegance.
| Goal | Description |
|---|---|
| 🔥 Elite Problem Solving | Tackle problems that stump most candidates |
| ⚙️ Advanced Optimization | Push beyond O(n log n) — think O(n), O(1) space |
| 🧩 Complex Pattern Chains | Combine multiple DSA patterns in one solution |
| 🏆 FAANG Readiness | Solve problems directly from top company interview banks |
| 🧠 Competitive Programming | Build instincts for timed, high-pressure environments |
Phase 3 — Hard DSA Topics
│
├── 🔗 Advanced Dynamic Programming (DP on Trees, Intervals, Bitmask)
├── 🌐 Graphs (Dijkstra, Bellman-Ford, Topological Sort, SCC)
├── 🌲 Advanced Trees (Segment Trees, Fenwick/BIT, AVL)
├── 🔢 Math & Number Theory (GCD, Modular Arithmetic, Combinatorics)
├── 🪟 Sliding Window & Monotonic Stack/Queue
├── 🔁 Backtracking with Pruning
├── 🔍 Binary Search on Answer
└── 🧵 String Algorithms (KMP, Z-Algorithm, Trie)
| Metric | Value |
|---|---|
| ✅ Problems Solved | 0 / 100 |
| 📅 Current Streak | Active |
| 🏆 Difficulty | Hard |
| 📢 Updates | |
| ⏱️ Avg. Time Per Problem | — |
At this level, understanding the "why" behind each solution matters more than the solution itself. Every problem is documented with full reasoning.
| # | Problem | Topic | Key Technique | Solution |
|---|---|---|---|---|
| 01 | (Upcoming) | — | — | — |
| 02 | (Upcoming) | — | — | — |
| 03 | (Upcoming) | — | — | — |
| ... | ... | ... | ... | ... |
| 100 | (Upcoming) | — | — | — |
This table is updated daily. Each entry links to a solution file with full explanation.
- Hard problems rarely require exotic algorithms — they require perfect application of fundamentals
- When stuck, reduce the problem: solve for n=1, n=2, find the pattern
- Space-time tradeoffs become critical — memoization vs tabulation, recursion vs iteration
- Drawing the problem visually almost always reveals the approach
- The first accepted solution is never the final solution — always revisit for optimization
# Clone the repo
git clone https://github.com/loisekk/100-days-leetcode-phase3.git
cd 100-days-leetcode-phase3
# Navigate to solutions
cd solutions/
# Run any solution
python problem_name.pyEach solution file follows this structure:
Problem Title
─────────────
🔗 LeetCode Link
📌 Approach: <brief explanation>
⏱️ Time Complexity: O(?)
💾 Space Complexity: O(?)
─────────────
[Clean Python Implementation]
| Phase | Difficulty | Problems | Status |
|---|---|---|---|
| Phase 1 | 🟢 Easy | 1–100 | ✅ Completed |
| Phase 2 | 🟡 Medium | 1–30 | 🔄 In Progress |
| Phase 3 | 🔴 Hard | 1–100 | 🔄 In Progress |