Skip to content

Latest commit

 

History

History
136 lines (111 loc) · 6.13 KB

File metadata and controls

136 lines (111 loc) · 6.13 KB

📚 NeetCode 250 - Topic Categories

This document outlines the 13 main topic categories for the NeetCode 250 problems, organized for optimal learning progression.

🎯 Topic Categories

1. Arrays & Strings (arrays_strings/)

  • Focus: Basic array manipulation, string operations, two pointers
  • Key Concepts: Array traversal, string manipulation, index-based operations
  • Common Patterns: Two pointers, sliding window, prefix sum
  • Example Problems: Two Sum, Valid Parentheses, Container With Most Water

2. Linked Lists (linked_lists/)

  • Focus: Linked list operations, node manipulation, cycle detection
  • Key Concepts: Node traversal, pointer manipulation, fast/slow pointers
  • Common Patterns: Two pointers, dummy nodes, cycle detection
  • Example Problems: Reverse Linked List, Detect Cycle, Merge Two Lists

3. Trees & Binary Trees (trees/)

  • Focus: Tree traversal, binary tree operations, tree construction
  • Key Concepts: DFS, BFS, recursion, tree properties
  • Common Patterns: Inorder/Preorder/Postorder traversal, level order
  • Example Problems: Binary Tree Inorder Traversal, Maximum Depth, Validate BST

4. Graphs & Traversals (graphs/)

  • Focus: Graph algorithms, path finding, connectivity
  • Key Concepts: DFS, BFS, topological sort, union find
  • Common Patterns: Adjacency list/matrix, visited tracking, path finding
  • Example Problems: Number of Islands, Course Schedule, Clone Graph

5. Dynamic Programming (dp/)

  • Focus: Memoization, tabulation, optimization problems
  • Key Concepts: State transitions, optimal substructure, memoization
  • Common Patterns: 1D/2D DP, state compression, bottom-up/top-down
  • Example Problems: Climbing Stairs, House Robber, Longest Common Subsequence

6. Sliding Window (sliding_window/)

  • Focus: Fixed/variable window problems, substring operations
  • Key Concepts: Window expansion/contraction, condition checking
  • Common Patterns: Fixed size window, variable size window, two pointers
  • Example Problems: Longest Substring Without Repeating Characters, Minimum Window Substring

7. Binary Search (binary_search/)

  • Focus: Search algorithms, optimization problems
  • Key Concepts: Search space reduction, boundary conditions
  • Common Patterns: Standard binary search, rotated array search
  • Example Problems: Binary Search, Search in Rotated Sorted Array

8. Backtracking (backtracking/)

  • Focus: Recursive exploration, constraint satisfaction
  • Key Concepts: State space exploration, pruning, recursion
  • Common Patterns: Permutations, combinations, subset generation
  • Example Problems: Subsets, Permutations, N-Queens

9. Stack & Queues (stack_queue/)

  • Focus: LIFO/FIFO data structures, monotonic stacks/queues
  • Key Concepts: Stack operations, queue operations, monotonicity
  • Common Patterns: Monotonic stack, queue-based BFS, stack-based DFS
  • Example Problems: Valid Parentheses, Implement Stack using Queues

10. Heap & Greedy (heap_greedy/)

  • Focus: Priority queues, greedy algorithms, optimization
  • Key Concepts: Heap operations, greedy choice property
  • Common Patterns: Min/max heap, greedy selection, priority-based processing
  • Example Problems: Merge k Sorted Lists, Task Scheduler

11. Bit Manipulation (bit_manipulation/)

  • Focus: Bitwise operations, binary number manipulation
  • Key Concepts: Bitwise AND/OR/XOR, bit shifting, bit counting
  • Common Patterns: Power of 2 detection, bit counting, XOR properties
  • Example Problems: Number of 1 Bits, Single Number, Power of Two

12. Math & Logic (math_logic/)

  • Focus: Mathematical algorithms, logical reasoning
  • Key Concepts: Prime numbers, GCD/LCM, mathematical properties
  • Common Patterns: Sieve of Eratosthenes, mathematical formulas
  • Example Problems: Count Primes, Happy Number, Excel Sheet Column Title

13. Others & Miscellaneous (others/)

  • Focus: Specialized algorithms, advanced data structures
  • Key Concepts: Trie, segment tree, advanced algorithms
  • Common Patterns: Trie operations, segment tree queries
  • Example Problems: Implement Trie, Range Sum Query

📊 Learning Path Recommendation

Beginner Path (First 50 problems):

  1. Arrays & Strings (15 problems)
  2. Linked Lists (10 problems)
  3. Trees (15 problems)
  4. Stack & Queues (10 problems)

Intermediate Path (Next 100 problems):

  1. Graphs (20 problems)
  2. Binary Search (15 problems)
  3. Sliding Window (15 problems)
  4. Backtracking (20 problems)
  5. Heap & Greedy (15 problems)
  6. Math & Logic (15 problems)

Advanced Path (Final 100 problems):

  1. Dynamic Programming (40 problems)
  2. Bit Manipulation (15 problems)
  3. Others (25 problems)
  4. Mixed review (20 problems)

🎯 Problem Count by Category

Category Problem Count Difficulty Distribution
Arrays & Strings ~40 Easy: 15, Medium: 20, Hard: 5
Linked Lists ~20 Easy: 8, Medium: 10, Hard: 2
Trees ~35 Easy: 12, Medium: 18, Hard: 5
Graphs ~25 Easy: 5, Medium: 15, Hard: 5
Dynamic Programming ~40 Easy: 8, Medium: 22, Hard: 10
Sliding Window ~20 Easy: 5, Medium: 12, Hard: 3
Binary Search ~15 Easy: 3, Medium: 10, Hard: 2
Backtracking ~20 Easy: 3, Medium: 12, Hard: 5
Stack & Queues ~15 Easy: 6, Medium: 7, Hard: 2
Heap & Greedy ~15 Easy: 3, Medium: 9, Hard: 3
Bit Manipulation ~10 Easy: 2, Medium: 6, Hard: 2
Math & Logic ~10 Easy: 3, Medium: 5, Hard: 2
Others ~5 Easy: 1, Medium: 2, Hard: 2

🚀 Tips for Success

  1. Start with Arrays & Strings - Build strong fundamentals
  2. Practice Daily - Consistency is key to retention
  3. Understand Patterns - Focus on recognizing problem patterns
  4. Time Yourself - Practice under interview conditions
  5. Review Solutions - Learn from optimal approaches
  6. Implement from Scratch - Don't just read, code!

This structure follows the NeetCode 250 curriculum designed for optimal learning progression and interview preparation.