Skip to content

Instantly share code, notes, and snippets.

@SuryaPratapK
Created February 3, 2020 17:39
Show Gist options
  • Save SuryaPratapK/461ec0703fa13cea979999f5d6e53526 to your computer and use it in GitHub Desktop.
Save SuryaPratapK/461ec0703fa13cea979999f5d6e53526 to your computer and use it in GitHub Desktop.
// C++ program to find equilibrium
// index of an array
#include <bits/stdc++.h>
using namespace std;
int equilibrium(int arr[], int n)
{
int sum = 0; // initialize sum of whole array
int leftsum = 0; // initialize leftsum
/* Find sum of the whole array */
for (int i = 0; i < n; ++i)
sum += arr[i];
for (int i = 0; i < n; ++i)
{
sum -= arr[i]; // sum is now right sum for index i
if (leftsum == sum)
return i;
leftsum += arr[i];
}
/* If no equilibrium index found, then return 0 */
return -1;
}
// Driver code
int main()
{
int arr[] = { -7, 1, 5, 2, -4, 3, 0 };
int arr_size = sizeof(arr) / sizeof(arr[0]);
cout << "First equilibrium index is " << equilibrium(arr, arr_size);
return 0;
}
// This is code is contributed by rathbhupendra
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment