```class Solution {
// Function to find equilibrium point in the array.
public static int equilibriumPoint(long a[], int n) {

//We store the sum of all array elements.
long sum = 0;
for (int i = 0; i < n; i++)
sum += a[i];

//sum2 is used to store prefix sum.
long sum2 = 0;
int ans = -1;

for (int i = 0; i < n; i++) {

//Leaving out the value of current element from suffix sum.
sum = sum - a[i];

//Checking if suffix and prefix sums are same.
if (sum2 == sum) {
//returning the index or equilibrium point.
return (i + 1);
}

//Adding the value of current element to prefix sum.
sum2 = sum2 + a[i];
}
return -1;
}
}```
```// Efficient Method : Time Complexity : O(n), Auxilliary space : O(1)

import java.util.*;
import java.io.*;

class GFG
{
static boolean checkEquilibrium(int arr[], int n)
{
int sum = 0;

for(int i = 0; i < n; i++)
{
sum += arr[i];
}

int l_sum = 0;

for(int i = 0; i < n; i++)
{
if(l_sum == sum - arr[i])
return true;

l_sum += arr[i];

sum -= arr[i];
}

return false;
}

public static void main(String args[])
{
int arr[] = {3, 4, 8, -9, 20, 6}, n = 6;

System.out.println(checkEquilibrium(arr, n));
}
}

// Naive Method : Time Complexity : O(n^2)

static boolean checkEquilibrium(int arr[], int n)
{
for(int i  = 0; i < n; i++)
{
int l_sum = 0, r_sum = 0;

for(int j = 0; j < i; j++)
l_sum += arr[j];

for(int j = i + 1; j < n; j++)
r_sum += arr[j];

if(l_sum == r_sum)
return true;
}

return false;
}```
star

Tue Feb 08 2022 05:40:29 GMT+0000 (Coordinated Universal Time) https://practice.geeksforgeeks.org/problems/equilibrium-point-1587115620/1/?track=DSASP-Arrays&batchId=190

#java #gfg #geeksforgeeks #arrays #practice #equilibriumpoint