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
Post a Comment