Untitled
unknown
plain_text
a year ago
952 B
7
Indexable
//Approach-2 (Using O(1) space)
class Solution{
public:
// Function to find equilibrium point in the array.
// a: input array
// n: size of array
int equilibriumPoint(long long a[], int n) {
if(n == 1)
return 1; //if only 1 element, it's left and right are equal :-)
else if(n == 2)
return -1; //We can't have an equilibrium with only 2 elements :-(
long long left_sum = a[0];
long long totalSum = 0;
for(int i = 0; i<n; i++) {
totalSum += a[i];
}
for(int i = 1; i<n; i++) {
int right_sum = totalSum-left_sum-a[i]; //This logic is same as explained in Approach-1
if(left_sum == right_sum)
return i+1;
left_sum += a[i];
}
return -1;
}
};Editor is loading...
Leave a Comment