알고리즘
Minimum Operations to Make Binary Array Elements Equal to One I
짬뽕얼큰하게
2025. 3. 19. 23:20
Leetcode Problem:
Summary
- Given a binary array, find the minimum number of operations to make all elements equal to 1 by flipping 3 consecutive elements at a time.
Approach
- The approach is to iterate through the array and flip 3 consecutive elements at a time until no more flips are possible
- If a 3 consecutive elements cannot be found, return -1.
Complexity
- O(n), where n is the number of elements in the array
Explanation
- The solution iterates through the array and checks if the current element and the next two elements are 0
- If they are, it flips them and increments the answer
- This process continues until no more flips are possible
- If at any point a 3 consecutive elements cannot be found, the function returns -1.
Solution Code:
class Solution {
public:
int minOperations(vector& nums) {
int ans = 0;
for(int i = 0 ; i < nums.size(); i++){
if(nums[i] == 0){
for(int j = i; j < i + 3; j++){
if(j >= nums.size()) return -1;
nums[j] ^= 1;
}
ans++;
}
}
return ans;
}
};
class Solution {
public:
int minOperations(vector& nums) {
int ans = 0;
for(int i = 0 ; i < nums.size(); i++){
if(nums[i] == 0){
for(int j = i; j < i + 3; j++){
if(j >= nums.size()) return -1;
nums[j] ^= 1;
}
ans++;
}
}
return ans;
}
};