Advertisement
unknown_0711

Untitled

Nov 13th, 2022
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.util.*;
  4.  
  5. class Accio{
  6. static int LongestSubArraywithSumK(int n, int k, int[] arr){
  7. //write code her
  8. HashMap<Integer,Integer> hm = new HashMap<>();
  9. int pre_sum =0;
  10. int max =0;
  11. for(int i=0;i<n;i++)
  12. {
  13. pre_sum +=arr[i];
  14. if(pre_sum ==k)
  15. {
  16. if(i + 1>max)
  17. {
  18. max =i + 1;
  19. }
  20. }
  21. if(hm.containsKey(pre_sum-k))
  22. {
  23. if((i-hm.get(pre_sum-k))>max)
  24. {
  25. max =i-hm.get(pre_sum-k);
  26. }
  27. }
  28. if(!hm.containsKey(pre_sum))
  29. {
  30. hm.put(pre_sum,i);
  31. }
  32. }
  33. return max;
  34. }
  35. }
  36.  
  37. public class Main {
  38. public static void main(String[] args) throws Throwable {
  39. Scanner sc = new Scanner(System.in);
  40. int n = sc.nextInt();
  41. int k = sc.nextInt();
  42. int nums[]=new int[n];
  43. for(int i = 0; i < n; i++)
  44. {
  45. nums[i] = sc.nextInt();
  46. }
  47. Accio obj = new Accio();
  48. int ans = obj.LongestSubArraywithSumK(n,k,nums);
  49. System.out.println(ans);
  50. }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement