这道题的思路是找到数组中出现次数最多的数字,然后比较它和数组的大小,如果出现的次数达到了数组大小的1/2,那么就输出2*大小-1;否则输出n%2
#include<iostream>
#include<cmath>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
const int maxn = 2e5 + 10;
using namespace std;
typedef long long ll;
int main()
{
int t;
cin >> t;
while (t--)
{
ll n;
cin >> n;
map<ll, ll> mp;
ll mx = 0, x;
for (int i = 0; i < n; i++)
{
cin >> x;
mx = max(mx, ++mp[x]);//找到数量最大的数字
}
cout << max(n % 2, 2 * mx - n) << endl;//2*mx-n表示mx>n的情况,n%2表示mx<=n的情况
}
}