How to find the subarray whose sum is equal to a given number N in Java

1 Answer

0 votes
public class MyClass {
    private static void PrintSubarrayWithSumEqualToN(int[] arr, int N) {
        int size = arr.length;
        
    	for (int i = 0; i < size; i++) {
    		int current_sum = arr[i];
    
    		if (current_sum == N) {
    			System.out.print("Sum found at index: " + i);
    			return;
    		}
    		else {
    				for (int j = i + 1; j < size; j++) {
    					current_sum += arr[j];
    
    					if (current_sum == N) {
    						System.out.println("Sum found between index " + i + " and " + j);
    						for (int k = i; k <= j; k++) {
    							System.out.print(arr[k] + " ");
    						}
    						return;
    					}
    				else if (current_sum > N) {
    					    break;
    				    }
    				}
    		}
    	}
    	System.out.print("No subarray found");
    }

    public static void main(String args[]) {
      	int[] arr = {2, 5, 8, 9, 1, 7, 12, 21, 19};

	    int N = 52;

	    PrintSubarrayWithSumEqualToN(arr, N);
    }
}




/*
run:
 
Sum found between index 6 and 8
12 21 19 
 
*/

 



answered Sep 26, 2022 by avibootz
...