Given an array of integers `nums` and an integer `k`, return the **total number of subarrays** whose sum equals `k`.
A subarray is a contiguous non-empty sequence of elements within an array.
Note: `nums` can contain negative numbers, so a plain sliding window does not work.
Example 1
Input:nums = [1,1,1], k = 2
Output:2
Explanation:[1,1] (first two) and [1,1] (last two) both sum to 2.
Example 2
Input:nums = [1,2,3], k = 3
Output:2
Explanation:[1,2] and [3] both sum to 3.
Example 3
Input:nums = [1,-1,0], k = 0
Output:3
Explanation:[1,-1], [0], and [1,-1,0] all sum to 0.