w3resource

Java: Print all sub-arrays with 0 sum present in a given array of integers

Java Array: Exercise-55 with Solution

Write a Java program to print all sub-arrays with 0 sum present in a given array of integers.

Example:
Input :
nums1 = { 1, 3, -7, 3, 2, 3, 1, -3, -2, -2 }
nums2 = { 1, 2, -3, 4, 5, 6 }
nums3= { 1, 2, -2, 3, 4, 5, 6 }
Output:
Sub-arrays with 0 sum : [1, 3, -7, 3]
Sub-arrays with 0 sum : [3, -7, 3, 2, 3, 1, -3, -2]
Sub-arrays with 0 sum : [1, 2, -3]
Sub-arrays with 0 sum : [2, -2]

Sample Solution:

Java Code:

// Import necessary Java classes.
import java.util.*;
import java.lang.*;

// Define a class named 'solution'.
class solution
{
    // A method to print all subarrays with a sum of zero.
    public static void print_all_Subarrays(int[] A)
    {
        // Create a list to store elements of subarrays.
        List<Integer> llist = new ArrayList<Integer>();

        // Iterate through the array.
        for (int i = 0; i < A.length; i++)
        {
            int sum = 0;
            llist.removeAll(llist);

            // Nested loop to find subarrays starting from index i.
            for (int j = i; j < A.length; j++)
            {
                sum += A[j];
                llist.add(A[j]);

                // If the sum of the subarray is zero, print it.
                if (sum == 0) {
                    System.out.println("Sub-arrays with 0 sum: " + llist.toString());
                }
            }
        }
    }

    public static void main (String[] args)
    {
        // Define an array 'nums1'.
        int[] nums1 = { 1, 3, -7, 3, 2, 3, 1, -3, -2, -2 };
        System.out.println("\nOriginal array: " + Arrays.toString(nums1));
        
        // Print all subarrays with a sum of zero for 'nums1'.
        print_all_Subarrays(nums1);
        
        // Define another array 'nums2'.
        int[] nums2 = { 1, 2, -3, 4, 5, 6 };
        System.out.println("\nOriginal array: " + Arrays.toString(nums2));
        
        // Print all subarrays with a sum of zero for 'nums2'.
        print_all_Subarrays(nums2);

        // Define yet another array 'nums3'.
        int[] nums3= { 1, 2, -2, 3, 4, 5, 6 };
        System.out.println("\nOriginal array: " + Arrays.toString(nums3));
        
        // Print all subarrays with a sum of zero for 'nums3'.
        print_all_Subarrays(nums3);
    }
}

Sample Output:

                                                                              
Original array: [1, 3, -7, 3, 2, 3, 1, -3, -2, -2]
Sub-arrays with 0 sum : [1, 3, -7, 3]
Sub-arrays with 0 sum : [3, -7, 3, 2, 3, 1, -3, -2]

Original array: [1, 2, -3, 4, 5, 6]
Sub-arrays with 0 sum : [1, 2, -3]

Original array: [1, 2, -2, 3, 4, 5, 6]
Sub-arrays with 0 sum : [2, -2]

Flowchart:

Flowchart: Print all sub-arrays with 0 sum present in a given array of integers

Java Code Editor:

Previous: Write a Java program to check if a given array contains a subarray with 0 sum.
Next: Write a Java program to sort a given binary array in linear times.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/java-exercises/array/java-array-exercise-55.php