fork download
  1. import java.util.*;
  2.  
  3. public class Main {
  4.  
  5. public static int largestSubarraySumK(int[] arr, int k) {
  6.  
  7. HashMap<Integer, Integer> map = new HashMap<>();
  8. int maxLength=0;
  9. int sum=0;
  10. map.put(0,-1);
  11. for(int i=0;i<arr.length;i++){
  12. sum+=arr[i];
  13. if(map.containsKey(sum-k)){
  14. maxLength=Math.max(maxLength,i-map.get(sum-k));
  15. }
  16. map.putIfAbsent(sum,i);
  17. }
  18. return maxLength;
  19. }
  20.  
  21. public static void main(String[] args) {
  22.  
  23. int[] arr = {1, -1, 5, -2, 3};
  24. int k = 3;
  25.  
  26. System.out.println(largestSubarraySumK(arr, k));
  27. }
  28. }
Success #stdin #stdout 0.08s 52460KB
stdin
Standard input is empty
stdout
4