Untitled
//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; } };
Leave a Comment