题目:Mex 大师
对于该题,给出一个测试点的解法:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n;
cin >> n;
int i;
vector<int>arr(n);
int a[5] = { 0 };
for (i = 0; i < n; i++)
{
cin >> arr[i];
if (arr[i] == 0)
a[0]++;
else if (arr[i] == 1)
a[1]++;
else if (arr[i] == 2)
a[2]++;
else if (arr[i] == 3)
a[3]++;
else
a[4]++;
}
if (a[0]-1 <= (n - 1) / 2)
cout << 0;
else if (a[0] > (n - 1) / 2 && (a[2] > 0 || a[3] > 0 || a[4] > 0) || a[0] > (n - 1) / 2 && a[1] == 0)
cout << 1;
else if (a[0] > (n - 1) / 2 && a[2] == 0 || a[0] > (n - 1) / 2 && (a[1] > 0 || a[3] > 0 || a[4] > 0))
cout << 2;
else
cout << 4;
return 0;
}