15 patterns
https://www.youtube.com/watch?v=DjYZk8nrXVY
Prefix Sum
- Range Sum Query - Immutable
- Contiguous Array
- Subarray Sum Equals K
Two Pointers
- Two Sum II - Input Array is Sorted
- 3 Sum
- Container with most water
Sliding Window
- Maximum Average Subarray I
- Longest Substring without Repeating Characters
- Minimum Window Substring
Fast and Slow Pointers
- Linked List Cycle
- Happy Number
- Find the Duplicate Number
Linked List in-place reversal
- Reverse Linked List
- Reverse Linked List II
- Swap Nodes in Pairs
Monotonic Stack
- Next Greater Element I
- Daily Temperatures
- Largest Rectangle in Histogram
Top K. Elements OR min/max Heap
- Kth Largest element in an array
- Top K Frequent Elements
- Find K Pairs with Smallest Sums
Overlapping Intervals
- Merge Intervals
- Insert Interval
- Non-overlapping intervals
Modified Binary Search
- Search in Rotated Sorted Array
- Find Minimum in Rotated Sorted Array
- Search a 2D Matrix II
Binary Tree Traversal
- Binary Tree Paths
- Kth Smallest Element in a BST
- Binary Tree Maximum Path Sum
- Binary Tree Level Order Traversal II
Depth First Search
- Clone Graph
- Path Sum II
- Course Schedule II
Breadth First Search
- Binary Tree Level Order Traversal
- Rotting Oranges
- Word Ladder
Matrix Traversal
- Flood Fill
- Number of Islands
- Surrounded Regions
Backtracking
- Permutations
- Subsets
- N-Queens
Dynamic Programming
- Climbing Stairs
- Coin Change
- Longest Increasing Subsequence
- Partition Equal Subset Sum
- Burst Balloons
- Longest Common Subsequence