← All problems

3354. Make Array Elements Equal to Zero

EasyOpen on LeetCodeProblem statement

Problem Statement

3354. Make Array Elements Equal to Zero

Easy


You are given an integer array nums.

Start by selecting a starting position curr such that nums[curr] == 0, and choose a movement direction of either left or right.

After that, you repeat the following process:

A selection of the initial position curr and movement direction is considered valid if every element in nums becomes 0 by the end of the process.

Return the number of possible valid selections.

 

Example 1:

Input: nums = [1,0,2,0,3]

Output: 2

Explanation:

The only possible valid selections are the following:

Example 2:

Input: nums = [2,3,4,0,4,1,0]

Output: 0

Explanation:

There are no possible valid selections.

 

Constraints:

Java

Source file
class Solution {
    public int countValidSelections(int[] nums) {
        int n = nums.length, prefixSum = 0, totalSum = 0, count = 0;
        for (int i : nums)
            totalSum += i;
        for (int i = 0; i < n; i++) {
            if (nums[i] == 0) {
                int postfixSum = totalSum - prefixSum;
                if (postfixSum == prefixSum)
                    count += 2;
                else if (Math.abs(postfixSum - prefixSum) == 1)
                    count++;
            } else
                prefixSum += nums[i];
        }
        return count;
    }
}