Step 1: Initialize sum = 0, map = {0:1}, count = 0
sum=0, map={0:1}, count=0Why: Start with sum 0 to handle subarrays starting at index 0
Step 2: Add first element (1) to sum: sum=1
sum=1, map={0:1}, count=0Why: Update running sum to include current element
Step 3: Check if sum-k=1-3=-2 in map: no
sum=1, map={0:1}, count=0Why: No previous prefix sum to form subarray summing to k yet
Step 4: Add sum=1 to map: map={0:1,1:1}
sum=1, map={0:1,1:1}, count=0Why: Record current sum for future subarray checks
Step 5: Add second element (2) to sum: sum=3
sum=3, map={0:1,1:1}, count=0Why: Update running sum with next element
Step 6: Check if sum-k=3-3=0 in map: yes, count += map[0]=1
sum=3, map={0:1,1:1}, count=1Why: Found subarray [1,2] summing to k
Step 7: Add sum=3 to map: map={0:1,1:1,3:1}
sum=3, map={0:1,1:1,3:1}, count=1Why: Record current sum for future subarray checks
Step 8: Add third element (3) to sum: sum=6
sum=6, map={0:1,1:1,3:1}, count=1Why: Update running sum with next element
Step 9: Check if sum-k=6-3=3 in map: yes, count += map[3]=1
sum=6, map={0:1,1:1,3:1}, count=2Why: Found subarray [3] summing to k
Step 10: Add sum=6 to map: map={0:1,1:1,3:1,6:1}
sum=6, map={0:1,1:1,3:1,6:1}, count=2Why: Record current sum for future subarray checks
Result: Final count = 2
Subarrays: [1,2], [3]