20. Subarray Sum Equals K
mediumAsked at Byju'sCount the number of contiguous subarrays whose sum equals k.
By Alex Chen, Founder, InterviewChamp.AI · Last verified
Problem
Given an array of integers nums and an integer k, return the total number of subarrays whose sum equals to k. A subarray is a contiguous non-empty sequence of elements within an array. The array may include negative values.
Constraints
1 <= nums.length <= 2 * 10^4-1000 <= nums[i] <= 1000-10^7 <= k <= 10^7
Examples
Example 1
nums = [1,1,1], k = 22Example 2
nums = [1,2,3], k = 32Approaches
1. Nested sum
Enumerate every (i,j) pair and accumulate the sum.
- Time
- O(n^2)
- Space
- O(1)
let count=0;
for(let i=0;i<nums.length;i++){let s=0;for(let j=i;j<nums.length;j++){s+=nums[j];if(s===k)count++;}}
return count;Tradeoff:
2. Prefix sum with hash count
Track running prefix sums in a Map of prefixSum -> occurrences. For each index, look up (prefix - k) to count valid subarrays ending here.
- Time
- O(n)
- Space
- O(n)
function subarraySum(nums, k) {
const counts = new Map([[0, 1]]);
let prefix = 0, result = 0;
for (const n of nums) {
prefix += n;
result += counts.get(prefix - k) || 0;
counts.set(prefix, (counts.get(prefix) || 0) + 1);
}
return result;
}Tradeoff:
Byju's-specific tips
Byju's K-12 analytics computes engagement windows on prefix-sum aggregates, so frame the hash-prefix trick as 'rolling-watch-time matching'.
Solve it now
Free. No sign-up. Python and JavaScript run instantly in your browser.
Practice these live with InterviewChamp.AI
Drill Subarray Sum Equals K and other Byju's interview questions under real-loop conditions with instant feedback on your reasoning, complexity claims, and code.
Practice these live with InterviewChamp.AI →