Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int n = sc.nextInt();
- int[] arr = new int[n];
- for (int i = 0; i < n; i++) arr[i] = sc.nextInt();
- int k = sc.nextInt();
- System.out.println(subarraySum(arr, k));
- }
- public static int subarraySum(int[] nums, int k) {
- Map<Integer, Integer> map = new HashMap<>();
- int n = nums.length, sum = 0, res = 0;
- map.put(sum, 1);
- for (int i = 0; i < n; i++) {
- sum += nums[i];
- if (map.containsKey(sum - k)) {
- res += map.get(sum - k);
- }
- if (map.containsKey(sum)) map.put(sum, map.get(sum) + 1);
- else map.put(sum, 1);
- }
- return res;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement