The NeetCode roadmap is a super useful guide designed to help you master coding interviews. It lays out a clear, step-by-step plan to learn important data structures and algorithms, starting from beginner-friendly concepts and working up to more advanced ones. The idea is to give you a structured path to follow, with curated problems from LeetCode that you can practice along the way.
All credit to Navdeep Singh.
Thank you 🙏 Navdeep for your work !
graph TD
A(Arrays & Hashing)
A --> C(Two Pointers)
A --> E(Stack)
C --> F(Binary Search)
C --> D[Sliding Window]
C --> G(Linked List)
G --> H(Trees)
F --> H
H --> J[Heap & Priority Queue]
J --> S(Intervals)
J --> N(Greedy)
J --> M(Advanced Graphs)
K --> L[Graphs]
H --> I(Tries)
H --> K[Backtracking]
K --> O(1-D DP)
O --> P
L --> M
L --> R(Math & Geometry)
L --> P(2-P DP)
O --> Q(Bit Manipulation)
Q --> R
| Problem | Difficulty | Python Module |
|---|---|---|
| Contains Duplicate | Easy | contains_duplicate.py |
| Valid Anagram | Easy | valid_anagram.py |
| Two Sum | Easy | two_sum.py |
| Group Anagrams | Medium | group_anagrams.py |
| Top K Frequent Elements | Medium | top_k_frequent_elements.py |
| Encode and Decode Strings | Medium | encode_decode_strings.py |
| Product of Array Except Self | Medium | product_of_array_except_self.py |
| Valid Sudoku | Medium | valid_sudoku.py |
| Longest Consecutive Sequence | Medium | longest_consecutive_sequence.py |
| Problem | Difficulty | Python Module |
|---|---|---|
| Valid Parentheses | Easy | valid_parentheses.py |
| Min Stack | Medium | min_stack.py |
| Evaluate Reverse Polish Notation | Medium | evaluate_reverse_polish_notation.py |
| Generate Parentheses | Medium | generate_parentheses.py |
| Daily Temperatures | Medium | daily_temperatures.py |
| Car Fleet | Medium | car_fleet.py |
| Largest Rectangle In Histogram | Hard | largest_rectangle.py |
| Problem | Difficulty | Local Code Link |
|---|---|---|
| Valid Palindrome | Easy | valid_palindrome.py |
| Two Sum II - Input Array Is Sorted | Medium | two_sum_ii.py |
| 3Sum | Medium | three_sum.py |
| Container With Most Water | Medium | container_with_most_water.py |
| Trapping Rain Water | Hard | trapping_rain_water.py |
| Problem | Difficulty | Local Code Link |
|---|---|---|
| Binary Search | Easy | binary_search.py |
| Search a 2D Matrix | Medium | search_2d_matrix.py |
| Koko Eating Bananas | Medium | koko_eating_bananas.py |
| Find Minimum In Rotated Sorted Array | Medium | find_min_in_rotated_sorted_array.py |
| Search In Rotated Sorted Array | Medium | search_in_rotated_sorted_array.py |
| Time Based Key Value Store | Medium | time_based_key_value_store.py |
| Median of Two Sorted Arrays | Hard | median_of_two_sorted_arrays.py |
| Problem | Difficulty | Local Code Link |
|---|---|---|
| Reverse Linked List | Easy | reverse_linked_list.py |
| Merge Two Sorted Lists | Easy | merge_two_sorted_lists.py |
| Reorder List | Medium | reorder_list.py |
| Remove Nth Node From End of List | Medium | remove_nth_node_from_end_of_list.py |
| Copy List With Random Pointer | Medium | copy_list_with_random_pointer.py |
| Add Two Numbers | Medium | add_two_numbers.py |
| Linked List Cycle | Easy | linked_list_cycle.py |
| Find The Duplicate Number | Medium | find_the_duplicate_number.py |
| LRU Cache | Medium | lru_cache.py |
| Merge K Sorted Lists | Hard | merge_k_sorted_lists.py |
| Reverse Nodes In K Group | Hard | reverse_nodes_in_k_group.py |