Created
February 3, 2020 17:39
-
-
Save SuryaPratapK/461ec0703fa13cea979999f5d6e53526 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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