1664. Ways to Make a Fair Array

 

Example 1:

Input: nums = [2,1,6,4]
Output: 1
Explanation:
Remove index 0: [1,6,4] -> Even sum: 1 + 4 = 5. Odd sum: 6. Not fair.
Remove index 1: [2,6,4] -> Even sum: 2 + 4 = 6. Odd sum: 6. Fair.
Remove index 2: [2,1,4] -> Even sum: 2 + 4 = 6. Odd sum: 1. Not fair.
Remove index 3: [2,1,6] -> Even sum: 2 + 6 = 8. Odd sum: 1. Not fair.
There is 1 index that you can remove to make nums fair.

Example 2:

Input: nums = [1,1,1]
Output: 3
Explanation: You can remove any index and the remaining array is fair.

Example 3:

Input: nums = [1,2,3]
Output: 0
Explanation: You cannot make a fair array after removing any index.
class Solution {
public int waysToMakeFair(int[] nums) {
int n = nums.length;
int rightOddSum = 0;
int rightEvenSum =0;
int res = 0;
for (int i = 0;i<n;i++){
if(i % 2 == 0){
rightEvenSum += nums[i];
}else{
rightOddSum += nums[i];
}
}
int leftEvenSum = 0;
int leftOddSum = 0;
for(int i = 0;i<n;i++){
if(i % 2 == 0){
rightEvenSum -= nums[i];
}else{
rightOddSum -= nums[i];
}
if(leftOddSum + rightEvenSum == leftEvenSum + rightOddSum){
res++;
}
if(i%2==0){
leftEvenSum += nums[i];
}else{
leftOddSum += nums[i];
}
}
return res;
}
}


Comments

Popular Posts