w3resource

Java: Find the equilibrium indices from a given array of integers

Java Array: Exercise-62 with Solution

Write a Java program to find equilibrium indices in a given array of integers.

An equilibrium index of a sequence is an index into the sequence such that the sum of elements at lower indices is equal to the sum of elements at higher indices.

For example, in a sequence A:
  A0 = -7
  A1 = 1
  A2 = 5
  A3 = 2
  A4 = -4
  A5 = 3
  A6 = 0
3 is an equilibrium index, because:

  A0 + A1 + A2 = A4 + A5 + A6
  
6 is also an equilibrium index, because:

  A0 + A1 + A2 + A3 + A4 + A5 = 0
  
(sum of zero elements is zero)

7 is not an equilibrium index, because it is not a valid index of sequence A.

Example:
Input :
nums = {-7, 1, 5, 2, -4, 3, 0}
Output:
Equilibrium indices found at : 3
Equilibrium indices found at : 6
Source: https://bit.ly/2ziUROQ

Sample Solution:

Java Code:

//Source: https://bit.ly/2ziUROQ

// Import the necessary Java class.
import java.util.Arrays;

// Define a class named 'solution'.
public class solution {
    public static void main(String[] args) {
        // Initialize an array of integers.
        int[] nums = {-7, 1, 5, 2, -4, 3, 0};
        System.out.println("Original array: " + Arrays.toString(nums));
        
        // Call the 'equlibrium_indices' method to find equilibrium indices.
        equlibrium_indices(nums);
    }

    public static void equlibrium_indices(int[] nums) {
        // Find the total sum of elements in the array.
        int totalSum = 0;
        for (int n : nums) {
            totalSum += n;
        }

        // Initialize a running sum to keep track of the sum as we iterate.
        int runningSum = 0;

        // Iterate through the array to find equilibrium indices.
        for (int i = 0; i < nums.length; i++) {
            int n = nums[i];

            // Check if the current index is an equilibrium index.
            if (totalSum - runningSum - n == runningSum) {
                System.out.println("Equilibrium indices found at: " + i);
            }

            // Update the running sum as we move through the array.
            runningSum += n;
        }
    }
}

Sample Output:

Original array: [-7, 1, 5, 2, -4, 3, 0]
Equilibrium indices found at : 3
Equilibrium indices found at : 6

Flowchart:

Flowchart: Find the equilibrium indices from a given array of integers

Java Code Editor:

Previous: Write a Java program to rearrange a given array of unique elements such that every second element of the array is greater than its left and right elements.
Next: Write a Java program to replace each element of the array with product of every other element in a given array of integers.

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://w3resource.com/java-exercises/array/java-array-exercise-62.php