pattern / MEDIUM
Make locally optimal choices for global optimum
complexity
time
O(n log n) typically
space
O(1)
02' — visual
interactive
Maximum sum subarray
03'
mental
model.
Sort by some criteria, then make the locally optimal choice at each step.
Greedy algorithms build solution piece by piece, always choosing the option that looks best at the moment.
when to use ✓
when not ✗
04'
Optimization problem
Locally optimal = globally optimal
Sorting + iteration
Activity/interval selection
05'
1# Beginner: Fixed-size sliding window2def max_sum_k(nums, k):3 n = len(nums)4 if n < k:5 return 06 window_sum = sum(nums[:k])7 max_sum = window_sum8 for i in range(k, n):9 window_sum += nums[i] - nums[i - k]10 max_sum = max(max_sum, window_sum)11 return max_sum
common mistakes
interview tips
06'
7 curated problems from LeetCode
07'