/**
Given an array of integers nums and an integer k, return the total number of
subarrays whose sum equals to k.
A subarray is a contiguous non-empty sequence of elements within an array.
Example 1:
Input: nums = [1,1,1], k = 2
Output: 2
Example 2:
Input: nums = [1,2,3], k = 3
Output: 2
Constraints:
1 <= nums.length <= 2 * 10⁴
-1000 <= nums[i] <= 1000
-10⁷ <= k <= 10⁷
Related Topics数组 | 哈希表 | 前缀和
👍 1722, 👎 0
*/
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public int subarraySum(int[] nums, int k) {
if (nums == null || nums.length == 0) {
return 0;
}
int[] sum = new int[nums.length + 1];
for (int i = 0; i < nums.length; i++) {
sum[i + 1] = sum[i] + nums[i];
}
int result = 0;
for (int i = 0; i < sum.length - 1; i++) {
for (int j = i + 1; j < sum.length; j++) {
if (sum[j] - sum[i] == k) {
result++;
}
}
}
return result;
}
}
//leetcode submit region end(Prohibit modification and deletion)