LC560 - Subarray Sum Equals K
Problem
Example
Solution
int subarraySum(vector<int>& nums, int k) {
unordered_map<int, int> prefixSums;
prefixSums[0] = 1;
auto sum = 0;
auto count = 0;
for (auto num : nums) {
sum += num;
// Check if prefix sum exists such that delta(cSum, pSum) ==k
if (prefixSums.find(sum - k) != prefixSums.end()) {
count += prefixSums[sum - k];
}
prefixSums[sum]++;
}
return count;
}Last updated