思路
与3191. 使二进制数组全部等于 1 的最少操作次数 I思路类似,区别在于该题每次将下标i开始一直到数组末尾所有元素反转,所以我们用一个变量可以统计翻转次数
解题过程
从左向右遍历数组的过程中,有两种情况需要进行翻转:1.当前元素为0且已经翻转次数为偶数;2.当前元素为1且已经翻转次数为奇数
Code
class Solution {
public int minOperations(int[] nums) {
int len=nums.length;
int num=0;
int ans=0;
for(int i=0;i<len;i++){
if((nums[i]==0&&num%2==0)||(nums[i]==1&&num%2==1)){
ans++;
num++;
}
}
return ans;
}
}
作者:菜卷
链接:https://leetcode.cn/problems/minimum-operations-to-make-binary-array-elements-equal-to-one-ii/solutions/2956449/shi-er-jin-zhi-shu-zu-quan-bu-deng-yu-1-17srv/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。