LEETCODE 15 patterns (https://www.youtube.com/watch?v=DjYZk8nrXVY)
- Prefix sum
- Use case: Query sum of elements in a subarray
- 303, 525, 560
- Two pointers
- Use case: palindrom
- 11, 15, 167
- Sliding Window
- Use case: subarray, substring
- 3, 76, 643
- Fast and Slow Pointers
- Use case: if a linked list contains cycle?, middle of the linked list
- 141, 202, 287
- Linked list in-place reversal
- Use case: Reverse a linked list, rearrange the list
- Use three points (prev, curr, next)
- 24, 92, 206
- Monotonic Stack
- Use case: Next greater/next smaller item in the array
- 84, 496, 739
- Top k elements
- Use case: K largest/smallest/most frequent
- Using min/max heap
- 215, 347, 373
- Overlapping Intervals
- Use case: merging interval, interval intersection, insert interval, find minimum meeting rooms
- 56, 57, 435
- Modified Binary Search
- Use case:
- 33, 153, 240
- Binary Tree Traversal
- 107, 124, 230, 257
- DFS
- 113, 133, 210
- BFS
- 102, 127, 994
- Matrix Traversal
- 130, 200, 733
- Backtracking
- 46, 51, 78
- DP
- 70, 300, 312, 322, 416, 1143
- BFS and DFS:
- Level Order Traversal: https://lnkd.in/gBgjQPZg
- Number of Islands: https://lnkd.in/gv6pDg_u
- Dynamic Programming:
- Longest Increasing Subsequence: https://lnkd.in/gdkjpHCv
- Longest Common Subsequence: https://lnkd.in/gn_niUMG
- Backtracking:
- Combination Sum: https://lnkd.in/g4mUmmqW
- Word Ladder: https://lnkd.in/gMsAtbcR
- Sliding Window:
- Longest Substring Without Repeating Characters: https://lnkd.in/g9FUYP-u
- Maximum Sum Subarray With Length k: https://lnkd.in/gHdNXSSt
- Top k Elements:
- k Largest Elements in an Array: https://lnkd.in/g8xWd37F
- k Most Frequent Elements in an Array: https://lnkd.in/g3T6BTqX