- Max Sub Array Sum, increase current or start new → Kadane
- Range Queries, Max or count of Target SubArray Sum, 2D Sum → Prefix Sum, count subarray with exactly k something = atMost(k) - atMost(k - 1)
- Partition array, choose where element should be where → Dutch National Flag + Cycle
- Pair or length in sorted array, trapping rain water, water container in → Two Pointers
- Subarray which can grow or shrink based on valid condition → Sliding Window
- you want increasing or decreasing sequence → monotonic stack
- search in a sorted array, find max, min over a space answer (guessing game, no answer expect guessing) → Binary search
- Max k, start or last k, greedy, sort some elements → heap