fork download
  1. import java.util.*;
  2.  
  3. class Main {
  4. public static int contiguousSubarray(int[] nums,int target) {
  5. Map<Integer, Integer> map = new HashMap<>();
  6. int sum = 0;
  7. int count = 0;
  8. map.put(0, 1);
  9.  
  10. for (int num : nums) {
  11. sum += num;
  12. int find=sum-target;
  13. if (map.containsKey(find)) {
  14. count += map.get(find);
  15. }
  16.  
  17. map.put(sum, map.getOrDefault(sum, 0) + 1);
  18. }
  19.  
  20. return count;
  21. }
  22.  
  23. public static void main(String[] args) {
  24. Scanner sc=new Scanner(System.in);
  25. int n=sc.nextInt();
  26. int[] nums = new int[n];
  27. for(int i=0;i<n;i++){
  28. nums[i]=sc.nextInt();
  29. }
  30. int target=sc.nextInt();
  31. int count=contiguousSubarray(nums,target);
  32. System.out.println("Number of subarrays with sum "+target+" : "+count);
  33. sc.close();
  34. }
  35. }
  36.  
Success #stdin #stdout 0.16s 58864KB
stdin
5
1 2 3 4 5
5
stdout
Number of subarrays with sum 5 : 2