Prefix Sum & Hash Map

Fundamentals

O(1) range queries and subarray sum lookups using cumulative totals

220 problems·18 Easy·141 Medium·61 Hard
Pattern Study Guide & Cheat Sheet
▼

Precompute cumulative values so any range sum sum(nums[i..j]) is computed in O(1) time as prefix[j+1] - prefix[i], or combined with a Hash Map to find subarrays in O(N).

Core Invariant: Sum(i..j) = Prefix[j] - Prefix[i-1] = target implies Prefix[i-1] = Prefix[j] - target. By storing seen prefix sums in a Hash Map, we can count or find valid starting indices in O(1)!

Recognize it (Keywords & Signals)
  • Subarray sum equals K (especially with negative numbers)
  • Number of continuous subarrays divisible by K
  • Longest subarray with equal number of 0s and 1s
  • Repeated range sum queries on static array / 2D matrix
When NOT to use

Frequent updates/modifications to array elements (use Fenwick Tree / Segment Tree for O(log n) dynamic updates).

How to solve (Step-by-step)
  1. 1.Initialize `curr_sum = 0`, `count = 0`, and `seen = {0: 1}` (empty prefix has sum 0 occurring once).
  2. 2.Iterate through each number `x` in the array.
  3. 3.Add to running sum: `curr_sum += x`.
  4. 4.Check if `(curr_sum - target)` exists in `seen`. If so, add its frequency to `count`.
  5. 5.Record current sum in map: `seen[curr_sum] = seen.get(curr_sum, 0) + 1`.
  6. 6.Return `count`.
Watch for (Interview Traps)
  • Forgetting `{0: 1}` in the hash map (fails on valid subarrays starting from index 0)
  • Updating the hash map BEFORE checking `curr_sum - k` (can cause self-match when k = 0)
  • Mistakenly using Sliding Window when numbers can be negative (Sliding Window requires monotonic sums)
Prefix Sum + Hash Map (Subarray Sum Equals K)
def subarray_sum_equals_k(nums: list[int], k: int) -> int:
    prefix_counts = {0: 1}  # Base case: sum 0 occurs once before array starts
    curr_sum = 0
    total_subarrays = 0
    
    for num in nums:
        curr_sum += num
        # If (curr_sum - k) was seen before, those prior points form valid subarrays
        diff = curr_sum - k
        if diff in prefix_counts:
            total_subarrays += prefix_counts[diff]
            
        prefix_counts[curr_sum] = prefix_counts.get(curr_sum, 0) + 1
        
    return total_subarrays
Cost
O(n) single pass · O(n) for hash map / prefix array (Reduces an O(n^2) brute force subarray check down to O(n).)
Canonical problems
#560 Subarray Sum Equals K: Count subarrays with sum K even with negative numbers
#525 Contiguous Array: Map 0 -> -1; longest subarray with sum 0 has equal 0s and 1s
#238 Product of Array Except Self: Combine prefix products from left and suffix products from right
#304 Range Sum Query 2D - Immutable: 2D prefix grid inclusion-exclusion area formula
Medium·51 companies·Max freq 100%·Acc 52.7%
SnapSnapSplunk+48
Medium·48 companies·Max freq 88%·Acc 47.7%
MetaKPMGRipple+45
Medium·46 companies·Max freq 100%·Acc 69.1%
QuantcastAsanaThousandEyes+43
Medium·27 companies·Max freq 100%·Acc 49.2%
Two SigmaLiftoffNuro+24
Medium·24 companies·Max freq 100%·Acc 54.7%
YatraSquarepoint CapitalRevolut+21
Hard·24 companies·Max freq 100%·Acc 60.9%
BaiduYugabyteZeta Global+21
Medium·24 companies·Max freq 88%·Acc 68.0%
LinkedInRokuMeta+21
Easy·19 companies·Max freq 100%·Acc 63.2%
RadiusCoupangMyntra+16
Medium·19 companies·Max freq 88%·Acc 52.2%
BCGCitigroupCitigroup+16
Medium·16 companies·Max freq 88%·Acc 51.7%
MotiveAkamaiMorgan Stanley+13
Medium·13 companies·Max freq 100%·Acc 58.0%
FlipkartRokuPhonePe+10
Medium·12 companies·Max freq 100%·Acc 45.0%
Pony.aiPony.aiUrban Company+9
Medium·12 companies·Max freq 89%·Acc 56.4%
CareemZeptoLyft+9
Medium·11 companies·Max freq 100%·Acc 63.0%
StarbucksTargetTekion+8
Easy·11 companies·Max freq 100%·Acc 64.8%
SwiggyDellYelp+8
Medium·11 companies·Max freq 72%·Acc 56.5%
HashedInTikTokJPMorgan Chase+8
Medium·11 companies·Max freq 71%·Acc 58.6%
OktaWaymoUpstart+8
Medium·10 companies·Max freq 63%·Acc 31.5%
MetaPhonePeYandex+7
Hard·9 companies·Max freq 100%·Acc 0.3%
DevRevPhonePeGoldman Sachs+6
Medium·9 companies·Max freq 88%·Acc 67.9%
PayPalTwilioIBM+6
Medium·8 companies·Max freq 100%·Acc 67.3%
DunzoFlatiron HealthGoDaddy+5
Hard·8 companies·Max freq 100%·Acc 58.0%
CohesityPhonePeRoblox+5
Easy·8 companies·Max freq 63%·Acc 72.7%
PalantirInfosysMeta+5
Medium·8 companies·Max freq 63%·Acc 50.9%
PalantirMetaGoldman Sachs+5
Easy·8 companies·Max freq 52%·Acc 0.8%
ZohoCognizantGoogle+5
Medium·7 companies·Max freq 100%·Acc 60.7%
RobinhoodRobloxCapital One+4
Medium·7 companies·Max freq 88%·Acc 63.6%
Walmart LabsAdobeIBM+4
Hard·7 companies·Max freq 75%·Acc 46.8%
CiscoHashedInOracle+4
Medium·7 companies·Max freq 65%·Acc 42.6%
PhonePeSamsungAmazon+4
Hard·7 companies·Max freq 63%·Acc 59.9%
General MotorsMetaInfosys+4
Medium·6 companies·Max freq 100%·Acc 55.7%
DirectiMicrosoftAmazon+3
Medium·6 companies·Max freq 100%·Acc 0.6%
CureFitMicrosoftAmazon+3
Medium·6 companies·Max freq 100%·Acc 71.2%
StripeMicrosoftAmazon+3
Medium·6 companies·Max freq 100%·Acc 50.3%
BNY MellonBloombergMicrosoft+3
Medium·6 companies·Max freq 100%·Acc 0.5%
VeritasZeta GlobalMeta+3
Medium·6 companies·Max freq 96%·Acc 56.7%
ZomatoTikTokAmazon+3
Medium·6 companies·Max freq 88%·Acc 56.4%
Media.netMedia.netGoogle+3
Easy·6 companies·Max freq 88%·Acc 0.6%
Media.netMedia.netMeta+3
Medium·6 companies·Max freq 68%·Acc 61.2%
TrilogyGoldman SachsGoogle+3
Medium·6 companies·Max freq 54%·Acc 0.5%
Morgan StanleyGoogleInfosys+3
Medium·6 companies·Max freq 50%·Acc 62.7%
Goldman SachsGoogleBloomberg+3
Easy·6 companies·Max freq 50%·Acc 87.0%
GoogleAmazontcs+3
Medium·6 companies·Max freq 50%·Acc 80.4%
UberMicrosoftGoogle+3
Medium·6 companies·Max freq 50%·Acc 59.7%
UberVisaTikTok+3
Medium·6 companies·Max freq 39%·Acc 73.8%
VisaGoogleBloomberg+3
Medium·6 companies·Max freq 38%·Acc 75.6%
MicrosoftGoldman SachsBloomberg+3
Medium·6 companies·Max freq 38%·Acc 90.2%
GoogleTikTokMeta+3
Medium·6 companies·Max freq 27%·Acc 41.9%
tcsBloombergAmazon+3
Medium·5 companies·Max freq 100%·Acc 71.3%
QuoraRobloxUber+2
Medium·5 companies·Max freq 100%·Acc 46.6%
PaytmVisaOracle+2
50 displayed (of 50 matching)Filtered: All Companies

Top Companies Testing Prefix Sum & Hash Map

Browse company-specific interview problem lists and recency breakdowns:

Explore All 22 DSA Coding Patterns

Master core algorithmic patterns tested in FAANG & Big Tech coding interviews.

Patterns Hub

Prefix Sum & Hash Map frequently asked questions

What is the Prefix Sum & Hash Map pattern in coding interviews?

O(1) range queries and subarray sum lookups using cumulative totals It is categorized under Fundamentals and features 220 curated interview problems across Easy (18), Medium (141), and Hard (61) difficulties.

Which tech companies frequently test Prefix Sum & Hash Map?

Companies frequently asking Prefix Sum & Hash Map questions include Google, Amazon, Microsoft, Meta, Bloomberg, Infosys.

How do I master the Prefix Sum & Hash Map pattern?

Start by studying the algorithmic strategy and template code, then practice Easy and Medium problems before attempting Hard problems under timed conditions.