Grokking the Coding Interview

Introduction

  1. Who should take this course.html

  2. Course Overview - Grokking the Coding Interview Patterns for Coding Questions.html

Pattern Sliding Window

  1. Introduction

    | Java | Python | C++ | Javascript |

  2. Maximum Sum Subarray of Size K (easy)

    | Java | Python | C++ | Javascript |

  3. Smallest Subarray with a given sum (easy)

    | Java | Python | C++ | Javascript |

  4. Longest Substring with K Distinct Characters (medium)

    | Java | Python | C++ | Javascript |

  5. Fruits into Baskets (medium)

    | Java | Python | C++ | Javascript |

  6. No-repeat Substring (hard)

    | Java | Python | C++ | Javascript |

  7. Longest Substring with Same Letters after Replacement (hard)

    | Java | Python | C++ | Javascript |

  8. Longest Subarray with Ones after Replacement (hard)

    | Java | Python | C++ | Javascript |

  9. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  10. Solution Review Problem Challenge 1

  11. Problem Challenge 2

  12. Solution Review Problem Challenge 2

  13. Problem Challenge 3

  14. Solution Review Problem Challenge 3

  15. Problem Challenge 4

  16. Solution Review Problem Challenge 4

Pattern Two Pointers

  1. Introduction

    | Java |

  2. Pair with Target Sum (easy)

    | Java | Python | C++ | Javascript |

  3. Remove Duplicates (easy)

    | Java | Python | C++ | Javascript |

  4. Squaring a Sorted Array (easy)

    | Java | Python | C++ | Javascript |

  5. Triplet Sum to Zero (medium)

    | Java | Python | C++ | Javascript |

  6. Triplet Sum Close to Target (medium)

    | Javascript |

  7. Triplets with Smaller Sum (medium)

    | Java | Python | C++ | Javascript |

  8. Dutch National Flag Problem (medium)

    | Java | Python | C++ | Javascript |

  9. Problem Challenge 1

  10. Solution Review Problem Challenge 2

  11. Problem Challenge 3

  12. Solution Review Problem Challenge 3

Pattern Fast Slow pointers

  1. Introduction

    | Java |

  2. LinkedList Cycle (easy)

    | Java | Python | C++ | Javascript |

  3. Start of LinkedList Cycle (medium)

    | Java | Python | C++ | Javascript |

  4. Happy Number (medium)

    | Java | Python | C++ | Javascript |

  5. Middle of the LinkedList (easy)

    | Java | Python | C++ | Javascript |

  6. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  7. Solution Review Problem Challenge 1

    | Java | Python | C++ | Javascript |

  8. Problem Challenge 2

    | Java | Python | C++ | Javascript |

  9. Solution Review Problem Challenge 2

    | Java | Python | C++ | Javascript |

  10. Problem Challenge 3

  11. Solution Review Problem Challenge 3

Pattern Merge Intervals

  1. Introduction

    | Java |

  2. Merge Intervals (medium)

    | Java | Python | C++ | Javascript |

  3. Insert Interval (medium)

    | Java | Python | C++ | Javascript |

  4. Intervals Intersection (medium)

    | Java | Python | C++ | C++ | Javascript |

  5. Conflicting Appointments (medium)

    | Java | Python | C++ | Javascript |

  6. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  7. Solution Review Problem Challenge 1

    | Java | Python | C++ | Javascript |

  8. Problem Challenge 2

    | Java | Python | C++ | Javascript |

  9. Solution Review Problem Challenge 2

    | Java | Python | C++ | Javascript |

  10. Problem Challenge 3

  11. Solution Review Problem Challenge 3

Pattern Cyclic Sort

  1. Introduction

    | Java |

  2. Cyclic Sort (easy)

    | Java | Python | C++ | Javascript |

  3. Find the Missing Number (easy)

    | Java | Python | C++ | Javascript |

  4. Find all Missing Numbers (easy)

    | Java | Python | C++ | Javascript |

  5. Find the Duplicate Number (easy)

    | Java | Python | C++ | Javascript |

  6. Find all Duplicate Numbers (easy)

    | Java | Python | C++ | Javascript |

  7. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  8. Solution Review Problem Challenge 1

    | Java | Python | C++ | Javascript |

  9. Problem Challenge 2

    | Java | Python | C++ | Javascript |

  10. Solution Review Problem Challenge 2

  11. Problem Challenge 3

  12. Solution Review Problem Challenge 3

Pattern In-place Reversal of a LinkedList

  1. Introduction

    | Java |

  2. Reverse a LinkedList (easy)

    | Java | Python | C++ | Javascript |

  3. Reverse a Sub-list (medium)

    | Java | Python | C++ | Javascript |

  4. Reverse every K-element Sub-list (medium)

    | Java | Python | C++ | Javascript |

  5. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  6. Solution Review Problem Challenge 1

    | Java | Python | C++ | Javascript |

  7. Problem Challenge 2

    | Java | Python | C++ | Javascript |

  8. Solution Review Problem Challenge 2

    | Java | Python | C++ | Javascript |

  1. Introduction

    | Java |

  2. Binary Tree Level Order Traversal (easy)

    | Java | Python | C++ | Javascript |

  3. Reverse Level Order Traversal (easy)

    | Java | Python | C++ | Javascript |

  4. Zigzag Traversal (medium)

    | Java | Python | C++ | Javascript |

  5. Level Averages in a Binary Tree (easy)

    | Java | Python | C++ | Javascript |

  6. Minimum Depth of a Binary Tree (easy)

    | Java | Python | C++ | Javascript |

  7. Level Order Successor (easy)

    | Java | Python | C++ | Javascript |

  8. Connect Level Order Siblings (medium)

    | Java | Python | C++ | Javascript |

  9. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  10. Solution Review Problem Challenge 1

  11. Problem Challenge 2

  12. Solution Review Problem Challenge 2

  1. Introduction

    | Java |

  2. Binary Tree Path Sum (easy)

    | Java | Python | C++ | Javascript |

  3. All Paths for a Sum (medium)

    | Java | Python | C++ | Javascript |

  4. Sum of Path Numbers (medium)

    | Java | Python | Python | C++ | Javascript |

  5. Path With Given Sequence (medium)

    | Java | Python | C++ | Javascript |

  6. Count Paths for a Sum (medium)

    | Java | Python | C++ | Javascript |

  7. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  8. Solution Review Problem Challenge 1

    | Java | Python | C++ | Javascript |

  9. Problem Challenge 2

    | Java | Python | C++ | Javascript |

  10. Solution Review Problem Challenge 2

Pattern Two Heaps

  1. Find the Median of a Number Stream (medium)

    | Java | Python | C++ | Javascript |

Pattern Subsets

  1. Introduction

    | Java |

  2. Subsets (easy)

    | Java | Python | C++ | Javascript |

  3. Subsets With Duplicates (easy)

    | Java | Python | C++ | Javascript |

  4. Permutations (medium)

    | Java | Python | C++ | Javascript |

  5. String Permutations by changing case (medium)

    | Java | Python | C++ | Javascript |

  6. Balanced Parentheses (hard)

    | Java | Python | C++ | Javascript |

  7. Unique Generalized Abbreviations (hard)

    | Java | Java | Python | C++ | Javascript |

  8. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  9. Solution Review Problem Challenge 1

    | Java | Python | C++ | Javascript |

  10. Problem Challenge 2

  11. Solution Review Problem Challenge 2

  12. Problem Challenge 3

  13. Solution Review Problem Challenge 3

  1. Introduction

    | Java |

  2. Order-agnostic Binary Search (easy)

    | Java | Python | C++ | Javascript |

  3. Ceiling of a Number (medium)

    | Java | Python | C++ | Javascript |

  4. Next Letter (medium)

    | Java | Python | C++ | Javascript |

  5. Number Range (medium)

    | Java | Python | C++ | Javascript |

  6. Search in a Sorted Infinite Array (medium)

    | Java | Python | C++ | Javascript |

  7. Minimum Difference Element (medium)

    | Java | Python | C++ | Javascript |

  8. Bitonic Array Maximum (easy)

    | Java | Python | C++ | Javascript |

  9. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  10. Solution Review Problem Challenge 1

  11. Problem Challenge 2

  12. Solution Review Problem Challenge 2

  13. Problem Challenge 3

  14. Solution Review Problem Challenge 3

Pattern Bitwise XOR

  1. Introduction

    | Java | Python | C++ | Javascript |

  2. Single Number (easy)

    | Java | Python | C++ | Javascript |

  3. Two Single Numbers (medium)

    | Java | Python | C++ | Javascript |

  4. Complement of Base 10 Number (medium)

    | Java | Python | C++ | Javascript |

  5. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  6. Solution Review Problem Challenge 1

    | Java | Python | C++ | Javascript |

Pattern Top K Elements

  1. Introduction

    | Java |

  2. Top K Numbers (easy)

    | Java | Python | C++ | Javascript |

  3. Kth Smallest Number (easy)

    | Java | Python | C++ | Javascript |

  4. K Closest Points to the Origin (easy)

  5. Connect Ropes (easy)

    | Java | Python | C++ | Javascript |

  6. Top K Frequent Numbers (medium)

    | Java | Python | C++ | Javascript |

  7. Frequency Sort (medium)

    | Java | Python | C++ | Javascript |

  8. Kth Largest Number in a Stream (medium)

    | Java | Python | C++ | Javascript |

  9. K Closest Numbers (medium)

  10. Maximum Distinct Elements (medium)

  11. Sum of Elements (medium)

  12. Rearrange String (hard)

  13. Problem Challenge 1

  14. Solution Review Problem Challenge 1

  15. Problem Challenge 2

  16. Solution Review Problem Challenge 2

  17. Problem Challenge 3

  18. Solution Review Problem Challenge 3

Pattern K-way merge

  1. Introduction

    | Java |

  2. Merge K Sorted Lists (medium)

    | Java | Python | C++ | Javascript |

  3. Kth Smallest Number in M Sorted Lists (Medium)

    | Java | Python | [C++](GrokkCode\15._Pattern_K-way_merge\3._Kth_Smallest_Number_in_M_Sorted_Lists_(Medium)\1.3Kth_Smallest_Number_in_M_Sorted_Lists_(Medium.html) | Javascript |

  4. Kth Smallest Number in a Sorted Matrix (Hard)

    | Java | Java | Python | C++ | Javascript |

  5. Smallest Number Range (Hard)

    | Java | Python | C++ | Javascript |

  6. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  7. Solution Review Problem Challenge 1

    | Java | Python | C++ | Javascript |

Pattern 0 or 1 Knapsack (Dynamic Programming)

  1. Introduction

    | Java |

  2. 01 Knapsack (medium)

    | Java | Java | Java | Java |

  3. Equal Subset Sum Partition (medium)

    | Java | Python | C++ | Javascript |

  4. Subset Sum (medium)

    | Java | Python | C++ | Javascript |

  5. Minimum Subset Sum Difference (hard)

    | Java | Python | C++ | Javascript |

  6. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  7. Solution Review Problem Challenge 1

    | Java | Python | C++ | Javascript |

  8. Problem Challenge 2

    | Java | Python | C++ | Javascript |

  9. Solution Review Problem Challenge 2

    | Java | Python | C++ | Javascript |

Pattern Topological Sort (Graph)

  1. Introduction

    | Java |

  2. Topological Sort (medium)

    | Java | Python | C++ | Javascript |

  3. Tasks Scheduling (medium)

    | Java | Java | Python | C++ | Javascript |

  4. Tasks Scheduling Order (medium)

    | Java | Java | Python | C++ | Javascript |

  5. All Tasks Scheduling Orders (hard)

    | Java | Java | Python | C++ | Javascript |

  6. Alien Dictionary (hard)

    | Java | Java | Python | C++ | Javascript |

  7. Problem Challenge 1

    | Java | Python | C++ | Javascript |

  8. Solution Review Problem Challenge 1

    | Java | Python | C++ | Javascript |

  9. Problem Challenge 2

    | Java | Python | C++ | Javascript |

  10. Solution Review Problem Challenge 2

Miscellaneous

  1. Kth Smallest Number (hard)

    | Java | Python | C++ | Javascript | Java |

Conclusions

  1. Where to Go from Here