Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.lang.*;
- import java.util.*;
- class Accio{
- static int LongestSubArraywithSumK(int n, int k, int[] arr){
- //write code her
- HashMap<Integer,Integer> hm = new HashMap<>();
- int pre_sum =0;
- int max =0;
- for(int i=0;i<n;i++)
- {
- pre_sum +=arr[i];
- if(pre_sum ==k)
- {
- if(i + 1>max)
- {
- max =i + 1;
- }
- }
- if(hm.containsKey(pre_sum-k))
- {
- if((i-hm.get(pre_sum-k))>max)
- {
- max =i-hm.get(pre_sum-k);
- }
- }
- if(!hm.containsKey(pre_sum))
- {
- hm.put(pre_sum,i);
- }
- }
- return max;
- }
- }
- public class Main {
- public static void main(String[] args) throws Throwable {
- Scanner sc = new Scanner(System.in);
- int n = sc.nextInt();
- int k = sc.nextInt();
- int nums[]=new int[n];
- for(int i = 0; i < n; i++)
- {
- nums[i] = sc.nextInt();
- }
- Accio obj = new Accio();
- int ans = obj.LongestSubArraywithSumK(n,k,nums);
- System.out.println(ans);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement