Ultimate DSA Patterns List for Problem Solving
Array & Two Pointer Patterns:
- Two Pointers: Reverse Array, Sorted Squares, Middle of Linked List
- Sliding Window: Max Sum Subarray, Longest Substring Without Repeating Characters
- Fast & Slow Pointers: Linked List Cycle, Middle of Linked List
- Prefix Sum: Subarray Sum Equal to K
Hashing Patterns:
- HashMap/HashSet Lookup: Two Sum, Contains Duplicate
- Frequency Counter: Valid Anagram, Group Anagrams
- Set for Unique Values: Longest Substring Without Repeating Characters
Linked List Patterns:
- Reverse Linked List: Reverse Linked List, Palindrome Linked List
- Detect Cycle: Linked List Cycle
- Merge Two Lists: Merge Two Sorted Lists
Recursion & Backtracking:
- Backtracking: Subsets, Permutations, Combination Sum
- Recursion for Tree/Graph: Binary Tree Traversals, N-Queens
Stack & Queue Patterns:
- Stack for Expression Parsing: Valid Parentheses, Min Stack
- Monotonic Stack: Next Greater Element, Daily Temperatures
- Queue for BFS: Level Order Traversal, Shortest Path in Grid
Binary Search Patterns:
- Basic Binary Search: Search in Sorted Array
- Search Variations: Find Peak Element, First Bad Version
- Binary Search on Answer: Koko Eating Bananas, Capacity to Ship Packages
Dynamic Programming Patterns:
- 0/1 Knapsack: Subset Sum, Partition Equal Subset Sum
- Fibonacci-style Recursion: Climbing Stairs, House Robber
- Longest Subsequence: Longest Increasing Subsequence, Edit Distance
- DP on Grids: Unique Paths, Minimum Path Sum
Graph Patterns:
- BFS/DFS Traversal: Number of Islands, Connected Components
- Topological Sort: Course Schedule
- Dijkstra's/Shortest Path: Network Delay Time
Greedy Patterns:
- Interval Merging: Merge Intervals
- Activity Selection: Non-overlapping Intervals
- Greedy Coin Change: Minimum Number of Coins
Math & Bit Manipulation:
- Bitwise Tricks: Single Number, Bitwise AND of Numbers Range
- Mathematical Reasoning: Happy Number, Power of Two
Mastering these patterns boosts your problem-solving speed and coding confidence.