fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12.  
  13. Scanner sc = new Scanner(System.in);
  14. int n=sc.nextInt();
  15. int k=sc.nextInt();
  16. int nums[] = new int[n];
  17. for(int i=0; i<n; i++){
  18. nums[i]=sc.nextInt();
  19. }
  20.  
  21. int res = subarraySum(nums,k);
  22. System.out.println(res);
  23.  
  24. }
  25.  
  26. public static int subarraySum(int[] nums, int k) {
  27. // make a prefix arry
  28. int psum =0,cnt=0;
  29. HashMap<Integer,Integer> map =new HashMap<>();
  30. map.put(0,1);
  31. for(int i=0 ; i<nums.length;i++){
  32. psum+=nums[i];
  33. if(map.containsKey(psum - k)){
  34. cnt+=map.get(psum - k);
  35. }
  36. map.put(psum,map.getOrDefault(psum,0)+1);
  37. }
  38.  
  39.  
  40. return cnt;
  41. }
  42. }
Success #stdin #stdout 0.17s 54540KB
stdin
3 3
1 2 3
stdout
2