更多题解尽在 https://sugar.matrixlab.dev/algorithm 每日更新。
组队打卡,更多解法等你一起来参与哦!
LeetCode 100344. 使二进制数组全部等于 1 的最少操作次数 I,难度中等。
暴力
解题思路:因为是任意连续三个元素,遍历数组,当遇到 nums[i] == 0
的时候,将 nums[i], nums[i + 1], nums[i + 2]
翻转。最后只需要判断 nums[nums.length - 2]
和 nums[nums.length - 1]
是否满足条件(是否为 1
)即可。
class Solution {public int minOperations(int[] nums) {int result = 0;for (int i = 0; i <= nums.length - 3; ++i) {if (nums[i] == 0) {for (int j = 0; j < 3; ++j) {nums[i + j] = 1 - nums[i + j];}result++;}}for (int i = nums.length - 2; i < nums.length; ++i) {if (nums[i] == 0) {return -1;}}return result;}
}