class Solution:
    def subarraySum(self, nums: List[int], k: int) -> int:
        prefix_sums = defaultdict(int)
        prefix_sums[0] = 1
        total = 0
        res = 0
 
        for num in nums:
            total += num
            diff = total - k
            res += prefix_sums[diff]
            prefix_sums[total] += 1
        
        return res

Complexity

Time:
Space: