Skip to content
← All Comparisons

Kadane's Algorithm vs Prefix Sum

Quick Answer

Use Kadane's Algorithm when you need the maximum sum of any contiguous subarray in a single pass. Use Prefix Sum when you need range sum queries, subarray sum equals K, or any problem where you repeatedly ask "what is the sum from index i to j?"

Side-by-Side Comparison

AspectKadane's AlgorithmPrefix Sum
Primary useMaximum sum of contiguous subarrayRange sum queries, subarray sum equals K
PreprocessingNone (single pass)O(n) to build prefix array
Query timeN/A (one-shot answer)O(1) per range query
Time complexityO(n)O(n) build + O(1) per query
Space complexityO(1)O(n) for prefix array
Key insightEither extend current subarray or start freshsum(i, j) = prefix[j+1] - prefix[i]
Key signal"Maximum subarray sum", "largest sum contiguous""Range sum", "subarray sum equals K", "multiple queries"

When to Use Kadane's Algorithm

When to Use Prefix Sum

Decision Framework

  1. Does the problem ask for "maximum subarray sum" or "largest sum contiguous"? Use Kadane's.
  2. Do you need to answer many "sum from i to j" queries? Use Prefix Sum.
  3. Does the problem ask for "number of subarrays with sum K"? Use Prefix Sum + Hash Map.
  4. Is it a 2D matrix with rectangular region sums? Use 2D Prefix Sum.
  5. Do you need O(1) space and a single pass? Kadane's fits; Prefix Sum needs O(n) space.

Example Problems

Kadane's Algorithm

  • 1.Maximum Subarray — Classic Kadane's: track current sum and max sum, reset when current goes negative.
  • 2.Maximum Sum Circular Subarray — Kadane's for non-circular max; also check total - min subarray for wrap-around case.
  • 3.Best Time to Buy and Sell Stock — Variant: max profit = max subarray sum of daily price differences.

Prefix Sum

  • 1.Range Sum Query — Build prefix array once; each query is prefix[right+1] - prefix[left] in O(1).
  • 2.Subarray Sum Equals K — Prefix sum + hash map: count how many prefix[j] - prefix[i] = K.
  • 3.Range Sum Query 2D — 2D prefix sums for O(1) rectangular region sum queries.