Talentd
FleetCode

3192. Minimum Operations to Make Binary Array Elements Equal to One II

Medium65.1% acceptance1 company

You are given a binary array nums.

You can do the following operation on the array any number of times (possibly zero):

  • Choose any index i from the array and flip all the elements from index i to the end of the array.

Flipping an element means changing its value from 0 to 1, and from 1 to 0.

Return the minimum number of operations required to make all elements in nums equal to 1.

Example 1:

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

Output: 4

Explanation:
We can do the following operations:

  • Choose the index i = 1. The resulting array will be nums = [0,0,0,1,0].
  • Choose the index i = 0. The resulting array will be nums = [1,1,1,0,1].
  • Choose the index i = 4. The resulting array will be nums = [1,1,1,0,0].
  • Choose the index i = 3. The resulting array will be nums = [1,1,1,1,1].

Example 2:

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

Output: 1

Explanation:
We can do the following operation:

  • Choose the index i = 1. The resulting array will be nums = [1,1,1,1].

Constraints:

  • 1 <= nums.length <= 105
  • 0 <= nums[i] <= 1

Asked at 1 company

Hints open one at a time

Hint 1
The only way to change nums[0] to 1 is by performing an operation with index i = 0.
Hint 2
Iterate from left to right and perform an operation at each index i where nums[i] is 0, and keep track of how many operations are currently performed on the suffix.
9:00
Still stuck?Read 3 approaches, or watch a walkthrough.
Open solution
Loading editor…
1class Solution:
2 def minOperations(self, nums: List[int]) -> int:
3
Starter codePython 3Spaces: 4
Examples
Input
[0,1,1,0,1]
Input
[1,0,0,0]
Your code is saved on this device.Solution