iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
自我挑戰組

Leetcode 解題之旅:逐日攻克系列 第 15

每日一LeetCode(15)

  • 分享至 

  • xImage
  •  

3191. Minimum Operations to Make Binary Array Elements Equal to One I

題目敘述:

You are given a binary array nums.

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

Choose any 3 consecutive elements from the array and flip all of them.
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. If it is impossible, return -1.

class Solution {
public:
    int minOperations(vector<int>& nums) {
     int n=nums.size();
     int cnt = 0;
     for(int i=0;i<n;i++)
     {
        if(nums[i] == 0 && i+2<n)
        {
            nums[i]=1;
            if(nums[i+1]==1)
                nums[i+1]=0;
            else if(nums[i+1]==0)
                nums[i+1]=1;
            if(nums[i+2]==1)
                nums[i+2]=0;
            else if(nums[i+2]==0)
                nums[i+2]=1;
                cnt++;
        }
     } 
     for(int i=0;i<n;i++)
     {
        if(nums[i]==0)
        {
            return -1;
        }
     }  
     return cnt;
    }
};

上一篇
每日一LeetCode(14)
下一篇
每日一LeetCode(16)
系列文
Leetcode 解題之旅:逐日攻克30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言