Dynamic Programming21 sections · 915 units
Open in Course

Challenge: Subarray Sum Zero

Special case of k=0

Find the number of subarrays summing to 00. This is the k=0k=0 case of Subarray Sum Equals K. observation: subarray arr[i..j]arr[i..j] sums to 00 iff prefix[j+1]=prefix[i]prefix[j+1] = prefix[i]. Count pairs of equal prefix sums.

If a prefix sum ss appears cc times, it contributes (c2)=c(c−1)/2\binom{c}{2} = c(c-1)/2 zero-sum subarrays. Try it on [−1,1,−1,1][-1, 1, -1, 1]. Prefix sums: 0,−1,0,−1,00, -1, 0, -1, 0. Sum 00 appears 33 times: 3⋅2/2=33 \cdot 2 / 2 = 3 subarrays. Sum −1-1 appears 22 times: 11 subarray. Total: 44.