2025-01-21:使二进制数组全部等于 1 的最少操作次数Ⅰ。用go语言,给定一个二进制数组 nums,你可以进行以下操作任意次数(包括0次):
选择数组中任意连续的3个元素,并将它们全部反转。反转的操作是将0变为1,或将1变为0。
你的任务是返回将 nums 中所有元素变为1所需的最小操作次数。如果无法将所有元素变为1,则返回 -1。
3 <= nums.length <= 100000。
0 <= nums[i] <= 1。
输入:nums = [0,1,1,1,0,0]。
输出:3。
解释:
我们可以执行以下操作:
选择下标为 0 ,1 和 2 的元素并反转,得到 nums = [1,0,0,1,0,0] 。
选择下标为 1 ,2 和 3 的元素并反转,得到 nums = [1,1,1,0,0,0] 。
选择下标为 3 ,4 和 5 的元素并反转,得到 nums = [1,1,1,1,1,1] 。
相似问题