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: O(n) Space: O(n)