Java: Find the equilibrium indices from a given array of integers
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:
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.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics