. - 力扣(LeetCode) 从左到右,碰到0就将当前以及后两位的值做异或操作,到数组结束全为1则返回操作次数,否则返回-1 参考了答案的,这题没有什么巧思。 from typing import List class Solution: def minOperations(self, nums: List[int]) -> int: # 从左到右,碰到0就将当前以及后两位的值为1,到数组结束全为1则返回反转次数,否则返回-1 count = 0 n = len(nums) for i in range(n): if nums[i] == 0: if i > n - 3: return -1 nums[i] ^= 1 nums[i + 1] ^= 1 nums[i + 2] ^= 1 count += 1 return count