Advertisement
Count Indices to Balance Even and Odd Sums
JavaView on GFG
Count Indices to Balance Even and Odd Sums.java
Java
class Solution {
public int cntWays(int[] arr) {
int n = arr.length;
int[] prefixEven = new int[n];
int[] prefixOdd = new int[n];
// Build prefix sums
if (n > 0)
prefixEven[0] = arr[0];
for (int i = 1; i < n; i++) {
prefixEven[i] = prefixEven[i - 1];
prefixOdd[i] = prefixOdd[i - 1];
if (i % 2 == 0)
prefixEven[i] += arr[i];
else
prefixOdd[i] += arr[i];
}
int totalEven = prefixEven[n - 1];
int totalOdd = prefixOdd[n - 1];
int count = 0;
for (int i = 0; i < n; i++) {
int evenBefore = (i > 0) ? prefixEven[i - 1] : 0;
int oddBefore = (i > 0) ? prefixOdd[i - 1] : 0;
int evenAfter = totalOdd - prefixOdd[i];
int oddAfter = totalEven - prefixEven[i];
int newEvenSum = evenBefore + evenAfter;
int newOddSum = oddBefore + oddAfter;
if (newEvenSum == newOddSum)
count++;
}
return count;
}
}
Advertisement
Was this solution helpful?