力扣第133场周赛

A

不能整除3就加一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution 
{
public:
int minimumOperations(vector<int>& nums)
{
int opers = 0;

for (int num : nums)
{
if (num % 3 != 0)
{
++opers;
}
}

return opers;
}
};

B

直接进行模拟即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
int minOperations(vector<int>& nums)
{
int n = nums.size();
int ans = 0;
for (int i = 0; i < n - 2; i++)
{
if (nums[i] == 0) {
nums[i + 1] ^= 1;
nums[i + 2] ^= 1;
ans++;
}
}
return nums[n - 2] && nums[n - 1] ? ans : -1;
}
};

C

也是从头到尾进行操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
int minOperations(vector<int>& nums) {
int ans = 0;
for (int x : nums)
{
if(ans%2==x)
{
ans++;
}
}
return ans;
}
};