Dynamic Programming21 sections · 916 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(c1)/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: 32/2=33 \cdot 2 / 2 = 3 subarrays. Sum 1-1 appears 22 times: 11 subarray. Total: 44.