📋
Practice →
Arrays & Hashing
3 min read
- › Two-pointer: use when array is sorted or needs O(1) space
- › Sliding window: fixed/variable size subarray → O(n)
- › HashMap for O(1) lookup: Two Sum, Group Anagrams, Top K Frequent
- › Prefix sum: range queries in O(1) after O(n) preprocessing
- › Kadane's algorithm: max subarray O(n) — track current vs global max
- › Sort + binary search when O(n log n) is acceptable
Show code example ↓
# Sliding window — max sum subarray of size k
def max_sum(arr, k):
win = sum(arr[:k])
best = win
for i in range(k, len(arr)):
win += arr[i] - arr[i-k]
best = max(best, win)
return best