Advertisement
unknown_0711

Untitled

Nov 17th, 2022
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. public class Main
  6. {
  7. public static void main (String[] args) throws java.lang.Exception
  8. {
  9. //your code here
  10. Scanner sc = new Scanner(System.in);
  11. int n = sc.nextInt();
  12. int k = sc.nextInt();
  13. int arr[] = new int[n];
  14. for(int i=0;i<n;i++)arr[i]=sc.nextInt();
  15. int ans = subarrsumk(arr,k);
  16. System.out.print(ans);
  17. }
  18. public static int subarrsumk(int [] arr, int target)
  19. {
  20. int n = arr.length;
  21. int ans = 0;
  22. HashMap<Integer,Integer> map = new HashMap<>();
  23. map.put(0,-1); // intial sum 0 and it has a freq 1
  24. int sum = 0;
  25. for (int i=0; i<n; i++)
  26. {
  27. sum += arr[i];
  28. if(map.containsKey(sum - target))
  29. {
  30. ans = Math.max(ans, i-map.get(sum - target));
  31. }
  32. if(!map.containsKey(sum))
  33. map.put(sum,i);
  34. }
  35. return ans;
  36. }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement