fork download
  1. import java.util.*;
  2.  
  3. public class Main {
  4. public static int countSubarrays(int[] arr, int k) {
  5. Map<Integer, Integer> prefixSumMap = new HashMap<>();
  6. int sum = 0, count = 0;
  7.  
  8. prefixSumMap.put(0, 1);
  9. for (int num : arr) {
  10. sum += num;
  11.  
  12. if (prefixSumMap.containsKey(sum - k)) {
  13. count += prefixSumMap.get(sum - k);
  14. }
  15.  
  16. prefixSumMap.put(sum, prefixSumMap.getOrDefault(sum, 0) + 1);
  17. }
  18.  
  19. return count;
  20. }
  21.  
  22. public static void main(String[] args) {
  23. int[] arr = {1, 2, 3, 4, 5};
  24. int k = 5;
  25. System.out.println("Count of subarrays with sum " + k + ": " + countSubarrays(arr, k));
  26. }
  27. }
  28.  
Success #stdin #stdout 0.17s 57512KB
stdin
Standard input is empty
stdout
Count of subarrays with sum 5: 2