Coding Interview Patterns

Coding Interview Patterns

1. Pattern: Two Pointers

  1. Introduction

  2. Pair with Target Sum (easy) LeetCodearrow-up-right

  3. Squaring a Sorted Array (easy) LeetCodearrow-up-right

  4. Triplet Sum to Zero (medium) LeetCodearrow-up-right

  5. Triplet Sum Close to Target (medium) LeetCodearrow-up-right

  6. Triplets with Smaller Sum (medium) LintCodearrow-up-right

  7. Subarrays with Product Less than a Target (medium) LeetCodearrow-up-right

  8. Dutch National Flag Problem (medium) CoderBytearrow-up-right

  9. Problem Challenge 1: Quadruple Sum to Target (medium) Leetcodearrow-up-right

  10. Problem Challenge 2: Comparing Strings containing Backspaces (medium) Leetcodearrow-up-right

  11. Problem Challenge 3: Minimum Window Sort (medium) Leetcodearrow-up-right Ideservearrow-up-right

2. Pattern: Fast & Slow pointers

  1. LinkedList Cycle (easy) Leetcodearrow-up-right

  2. Start of LinkedList Cycle (medium) Leetcodearrow-up-right

  3. Happy Number (medium) Leetcodearrow-up-right

  4. Middle of the LinkedList (easy) Leetcodearrow-up-right

  5. Problem Challenge 1: Palindrome LinkedList (medium) Leetcodearrow-up-right

  6. Problem Challenge 2: Rearrange a LinkedList (medium) Leetcodearrow-up-right

  7. Problem Challenge 3: Cycle in a Circular Array (hard) Leetcodearrow-up-right

3. Pattern: Sliding Window

  1. Introduction

  2. Maximum Sum Subarray of Size K (easy)

  3. Smallest Subarray with a given sum (easy) Educative.ioarrow-up-right

  4. Longest Substring with K Distinct Characters (medium) Educative.ioarrow-up-right

  5. Fruits into Baskets (medium) LeetCodearrow-up-right

  6. No-repeat Substring (hard) LeetCodearrow-up-right

  7. Longest Substring with Same Letters after Replacement (hard) LeetCodearrow-up-right

  8. Longest Subarray with Ones after Replacement (hard) LeetCodearrow-up-right

  9. Problem Challenge 1: Permutation in a String (hard) Leetcodearrow-up-right

  10. Problem Challenge 2: String Anagrams (hard) Leetcodearrow-up-right

  11. Problem Challenge 3: Smallest Window containing Substring (hard) Leetcodearrow-up-right

  12. Problem Challenge 4: Words Concatenation (hard) Leetcodearrow-up-right

4. Pattern: Merge Intervals

  1. Merge Intervals (medium) Educative.ioarrow-up-right

  2. Insert Interval (medium) Educative.ioarrow-up-right

  3. Intervals Intersection (medium) Educative.ioarrow-up-right

  4. Conflicting Appointments (medium) Geeksforgeeksarrow-up-right

  5. Problem Challenge 1: Minimum Meeting Rooms (hard) Lintcodearrow-up-right

  6. Problem Challenge 2: Maximum CPU Load (hard) Geeksforgeeksarrow-up-right

  7. Problem Challenge 3: Employee Free Time (hard) CoderTrainarrow-up-right

5. Pattern: Cyclic Sort

  1. Cyclic Sort (easy) Geeksforgeeksarrow-up-right

  2. Find the Missing Number (easy) Leetcodearrow-up-right

  3. Find all Missing Numbers (easy) Leetcodearrow-up-right

  4. Find the Duplicate Number (easy) Leetcodearrow-up-right

  5. Find all Duplicate Numbers (easy) Leetcodearrow-up-right

  6. Problem Challenge 1: Find the Corrupt Pair (easy) TheCodingSimplifiedarrow-up-right

  7. Problem Challenge 2: Find the Smallest Missing Positive Number (medium) Leetcodearrow-up-right

  8. Problem Challenge 3: Find the First K Missing Positive Numbers (hard) TheCodingSimplifiedarrow-up-right

6. Pattern: In-place Reversal of a LinkedList

  1. Reverse a LinkedList (easy) Leetcodearrow-up-right

  2. Reverse a Sub-list (medium) Leetcodearrow-up-right

  3. Reverse every K-element Sub-list (medium) Leetcodearrow-up-right

  4. Problem Challenge 1: Reverse alternating K-element Sub-list (medium) Geeksforgeeksarrow-up-right

  5. Problem Challenge 2: Rotate a LinkedList (medium) Leetcodearrow-up-right

7. Pattern: Stack

  1. Introduction to Stack (Operations, Implementation, Applications)

  2. Balanced Parentheses Leetcodearrow-up-right

  3. Reverse a String

  4. Decimal to Binary Conversion

  5. Sorting a Stack

8. Pattern: Monotonic Stack

  1. Introduction to Monotonic Stack

  2. Daily Temperatures (easy) Leetcodearrow-up-right

  3. Remove Nodes From Linked List (easy) Leetcodearrow-up-right

  4. Remove All Adjacent Duplicates In String (easy) Leetcodearrow-up-right

  5. Remove All Adjacent Duplicates in String II (medium) Leetcodearrow-up-right

  6. Remove K Digits (hard) Leetcodearrow-up-right

9. Pattern: Hash Maps

  1. Introduction (Hashing, Hash Tables, Issues)

  2. First Non-repeating Character (easy) Leetcodearrow-up-right

  3. Largest Unique Number (easy) Leetcode+arrow-up-right

  4. Maximum Number of Balloons (easy) Leetcodearrow-up-right

  5. Longest Palindrome(easy) Leetcodearrow-up-right

  6. Ransom Note (easy) Leetcodearrow-up-right

  1. Introduction

  2. Binary Tree Level Order Traversal (easy) Leetcodearrow-up-right

  3. Reverse Level Order Traversal (easy) Leetcodearrow-up-right

  4. Zigzag Traversal (medium) Leetcodearrow-up-right

  5. Level Averages in a Binary Tree (easy) Leetcodearrow-up-right

  6. Minimum Depth of a Binary Tree (easy) Leetcodearrow-up-right

  7. Maximum Depth of a Binary Tree (easy) Leetcodearrow-up-right

  8. Level Order Successor (easy) Geeksforgeeksarrow-up-right

  9. Connect Level Order Siblings (medium) Leetcodearrow-up-right

  10. Problem Challenge 1: Connect All Level Order Siblings (medium) Educativearrow-up-right

  11. Problem Challenge 2: Right View of a Binary Tree (easy) Leetcodearrow-up-right

  1. Introduction

  2. Binary Tree Path Sum (easy) Leetcodearrow-up-right

  3. All Paths for a Sum (medium) Leetcodearrow-up-right

  4. Sum of Path Numbers (medium) Leetcodearrow-up-right

  5. Path With Given Sequence (medium) Geeksforgeeksarrow-up-right

  6. Count Paths for a Sum (medium) Leetcodearrow-up-right

  7. Problem Challenge 1: Tree Diameter (medium) Leetcodearrow-up-right

  8. Problem Challenge 2: Path with Maximum Sum (hard) Leetcodearrow-up-right

12. Pattern: Graphs

  1. Introduction to Graph (Representations, Abstract Data Type (ADT))

  2. Graph Traversal: Depth First Search(DFS)

  3. Graph Traversal: Breadth First Search (BFS)

  4. Find if Path Exists in Graph(easy) Leetcodearrow-up-right

  5. Number of Provinces (medium) Leetcodearrow-up-right

  6. Minimum Number of Vertices to Reach All Nodes(medium) Leetcodearrow-up-right

13. Pattern: Island (Matrix traversal)

  1. Introduction to Island Pattern

  2. Number of Islands (easy) Leetcodearrow-up-right

  3. Biggest Island (easy)

  4. Flood Fill (easy) Leetcodearrow-up-right

  5. Number of Closed Islands (easy) Leetcodearrow-up-right

  6. Problem Challenge 1 (easy)

  7. Problem Challenge 2 (medium)

  8. Problem Challenge 3 (medium)

14. Pattern: Two Heaps

  1. Introduction

  2. Find the Median of a Number Stream (medium) Leetcodearrow-up-right

  3. Sliding Window Median (hard) Leetcodearrow-up-right

  4. Maximize Capital (hard) Leetcodearrow-up-right

  5. *Maximum Sum Combinations (medium) InterviewBitarrow-up-right

15. Pattern: Subsets

  1. Subsets With Duplicates (easy) Educative.ioarrow-up-right

  2. Permutations (medium) Educative.ioarrow-up-right

  3. String Permutations by changing case (medium)

  4. Balanced Parentheses (hard)

  5. Unique Generalized Abbreviations (hard) Leetcodearrow-up-right

  1. Order-agnostic Binary Search (easy) Geeksforgeeksarrow-up-right

  2. Next Letter (medium) Leetcodearrow-up-right

  3. Number Range (medium) Leetcodearrow-up-right

  4. Search in a Sorted Infinite Array (medium) Leetcodearrow-up-right

  5. Minimum Difference Element (medium): Find the floor & ceil take the difference, minimum would be the ans

  6. Bitonic Array Maximum (easy) Geeksforgeeksarrow-up-right

  7. Problem Challenge 1: Search Bitonic Array (medium) Leetcodearrow-up-right

  8. Problem Challenge 2: Search in Rotated Array (medium) Leetcodearrow-up-right

  9. Problem Challenge 3: Rotation Count (medium) Geeksforgeeksarrow-up-right

  10. *Search a 2D Matrix (medium) Leetcodearrow-up-right

  11. *Minimum Number of Days to Make m Bouquets (medium) Leetcodearrow-up-right

  12. *Koko Eating Bananas (medium) Leetcodearrow-up-right

  13. *Capacity To Ship Packages Within D Days (medium) Leetcodearrow-up-right

  14. *Median of Two Sorted Arrays (hard) Leetcodearrow-up-right

17. Pattern: Bitwise XOR

  1. Introduction

  2. Single Number (easy)

  3. Two Single Numbers (medium)

  4. Complement of Base 10 Number (medium)

  5. Problem Challenge 1: Flip and Invert an Image (hard)

18. Pattern: Top 'K' Elements

  1. Top 'K' Numbers (easy) Solutionarrow-up-right

  2. Kth Smallest Number (easy)

  3. 'K' Closest Points to the Origin (easy) Leetcodearrow-up-right

  4. Connect Ropes (easy)

  5. Top 'K' Frequent Numbers (medium)

  6. Frequency Sort (medium)

  7. Kth Largest Number in a Stream (medium) Leetcodearrow-up-right

  8. 'K' Closest Numbers (medium)

  9. Maximum Distinct Elements (medium)

  10. Sum of Elements (medium)

  11. Rearrange String (hard)

  12. Problem Challenge 1: Rearrange String K Distance Apart (hard)

  13. Problem Challenge 2: Scheduling Tasks (hard)

  14. Problem Challenge 3: Frequency Stack (hard)

19. Pattern: K-way merge

  1. Introduction

  2. Merge K Sorted Lists (medium) Leetcodearrow-up-right

  3. Kth Smallest Number in M Sorted Lists (Medium) Geeksforgeeksarrow-up-right

  4. Kth Smallest Number in a Sorted Matrix (Hard) Educative.ioarrow-up-right

  5. Smallest Number Range (Hard) Leetcodearrow-up-right

  6. Problem Challenge 1: K Pairs with Largest Sums (hard)

20. Pattern: Greedy Algorithms

  1. Introduction to Greedy Algorithm

  2. Valid Palindrome II (easy) Leetcodearrow-up-right

  3. Maximum Length of Pair Chain (medium) Leetcodearrow-up-right

  4. Minimum Add to Make Parentheses Valid (medium) Leetcodearrow-up-right

  5. Remove Duplicate Letters (medium) Leetcodearrow-up-right

  6. Largest Palindromic Number (Medium) Leetcodearrow-up-right

  7. Removing Minimum and Maximum From Array (medium) Leetcodearrow-up-right

21. Pattern : 0/1 Knapsack (Dynamic Programming)

  1. Introduction

  2. 0/1 Knapsack (medium) Geeksforgeeksarrow-up-right

  3. Equal Subset Sum Partition (medium) Leetcodearrow-up-right

  4. Subset Sum (medium) Geeksforgeeksarrow-up-right

  5. Minimum Subset Sum Difference (hard) Geeksforgeeksarrow-up-right

  6. Problem Challenge 1: Count of Subset Sum (hard)

  7. Problem Challenge 2: Target Sum (hard)

22. Pattern: Backtracking

  1. Introduction to Backtracking Pattern

  2. Sudoku Solver (hard) Leetcodearrow-up-right

  3. Factor Combinations (medium) Leetcode+arrow-up-right

  4. Split a String Into the Max Number of Unique Substrings (medium) Leetcodearrow-up-right

23. Pattern: Trie

  1. Introduction to Trie

  2. Implement Trie (Prefix Tree) (medium) Leetcodearrow-up-right

  3. Index Pairs of a String (easy) Leetcode+arrow-up-right

  4. Design Add and Search Words Data Structure (medium) Leetcodearrow-up-right

  5. Extra Characters in a String (medium) Leetcodearrow-up-right

  6. Search Suggestions System (medium) Leetcodearrow-up-right

24. Pattern: Topological Sort (Graph)

  1. Introduction

  2. Topological Sort (medium) Youtubearrow-up-right

  3. Tasks Scheduling (medium) Leetcode-Similararrow-up-right

  4. Tasks Scheduling Order (medium) Leetcode-Similararrow-up-right

  5. All Tasks Scheduling Orders (hard) Leetcode-Similararrow-up-right

  6. Alien Dictionary (hard) Leetcodearrow-up-right

  7. Problem Challenge 1: Reconstructing a Sequence (hard) Leetcodearrow-up-right

  8. Problem Challenge 2: Minimum Height Trees (hard) Leetcodearrow-up-right

25. Pattern: Union Find

  1. Introduction to Union Find Pattern

  2. Number of Provinces (medium) Leetcodearrow-up-right

  3. Is Graph Bipartite? (medium) Leetcodearrow-up-right

  4. Path With Minimum Effort (medium) Leetcodearrow-up-right

26. Ordered Set

  1. Introduction to Ordered Set Pattern

  2. Merge Similar Items (easy) Leetcodearrow-up-right

  3. 132 Pattern (medium) Leetcodearrow-up-right

  4. Longest Continuous Subarray (medium)

27. Pattern: Multi-thread

  1. Introduction to Multi-threaded Pattern

  2. Same Tree (medium)

  3. Invert Binary Tree (medium)

  4. Binary Search Tree Iterator (medium)

28. Miscellaneous

  1. Kth Smallest Number (hard)

Revision

Test Your Knowledge

Note: Problems marked with * are added as per my recommendations.

Last updated