Make Array Elements Equal to Zero
You receive 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:
-
If
curris out of the range[0, n - 1], this process ends. -
If
nums[curr] == 0, move in the current direction by incrementingcurrif you are moving right, or decrementingcurrif you are moving left. -
Else if
nums[curr] > 0:-
Decrement
nums[curr]by 1. -
Reverse your movement direction (left becomes right and vice versa).
-
Take a step in your new direction.
-
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.
Find and provide the count of valid valid selections.
Input: nums = [1,0,2,0,3]
Output: 2
Explanation: The only valid valid selections are the following:
-
Choose
curr = 3, and a movement direction to the left.[1,0,2,0,3] -> [1,0,2,0,3] -> [1,0,1,0,3] -> [1,0,1,0,3] -> [1,0,1,0,2] -> [1,0,1,0,2] -> [1,0,0,0,2] -> [1,0,0,0,2] -> [1,0,0,0,1] -> [1,0,0,0,1] -> [1,0,0,0,1] -> [1,0,0,0,1] -> [0,0,0,0,1] -> [0,0,0,0,1] -> [0,0,0,0,1] -> [0,0,0,0,1] -> [0,0,0,0,0].
-
Choose
curr = 3, and a movement direction to the right.[1,0,2,0,3] -> [1,0,2,0,3] -> [1,0,2,0,2] -> [1,0,2,0,2] -> [1,0,1,0,2] -> [1,0,1,0,2] -> [1,0,1,0,1] -> [1,0,1,0,1] -> [1,0,0,0,1] -> [1,0,0,0,1] -> [1,0,0,0,0] -> [1,0,0,0,0] -> [1,0,0,0,0] -> [1,0,0,0,0] -> [0,0,0,0,0].
Input: nums = [2,3,4,0,4,1,0]
Output: 0
Explanation: There are no valid valid selections.
Constraints
1 <= nums.length <= 1000 <= nums[i] <= 100- There is at least one element
iwherenums[i] == 0.
Did this problem appear in one of your interviews?
Responses stay private.
