fork download
  1. import java.util.*;
  2.  
  3. public class Main {
  4. // Using 2-pointers
  5. private static int MaxSubarray(int[] arr, int k){
  6. int max = 0;
  7. int left = 0, sum = 0;
  8. for(int right = 0; right<arr.length; right++){
  9. sum+=arr[right];
  10. while(sum>k){
  11. sum-=arr[left];
  12. left++;
  13. }
  14. if(sum == k) max = Math.max(max,(right - left +1));
  15. }
  16. return max;
  17. }
  18.  
  19. public static void main(String[] args) {
  20. int[] arr = {1, 2, 3, 4, 5};
  21. int k = 5;
  22. System.out.println("Max subarray with sum " + k + ": " + MaxSubarray(arr, k));
  23. }
  24. }
  25.  
Success #stdin #stdout 0.15s 55504KB
stdin
Standard input is empty
stdout
Max subarray with sum 5: 2