//code by RJ10
#include<bits/stdc++.h>
using namespace std;
#define endl "\n"
#define print(a) for(auto x : a) cout << x << " "; cout << endl
#define print1(a) for(auto x : a) cout << x.first << " " << x.second << endl
#define print2(a,x,y) for(int i = x; i < y; i++) cout<< a[i]<< " "; cout << endl
#define bug(...) __f (#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f (const char* name, Arg1&& arg1) { cout << name << " : " << arg1 << endl; }
template <typename Arg1, typename... Args>
void __f (const char* names, Arg1&& arg1, Args&&... args)
{
const char* comma = strchr (names + 1, ',');
cout.write (names, comma - names) << " : " << arg1 << " | "; __f (comma + 1, args...);
}
#define mod 1000000007;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int t=1;
cin>>t;
while (t--)
{
int n;
cin>>n;
vector<int> v(n);
for(int i=0 ; i<n ; i++)
{
cin>>v[i];
}
// bug(n);
if(n==1 || n==2)
{
cout<<"YES"<<endl;
continue;
}
unordered_map<int,int> umap;
for(int i=0 ; i<n ; i++)
{
umap[v[i]]++;
}
if(umap.size()==1)
{
cout<<"YES"<<endl;
continue;
}
if(umap.size()>2)
{
cout<<"NO"<<endl;
continue;
}
int i=-1;
int j=0;
for(auto it:umap)
{
if(i!=-1)
{
if(abs(i-it.second)<=1)
{
cout<<"YES"<<endl;
j=1;
}
}else {
i=it.second;
}
}
if(j==0) cout<<"NO"<<endl;
}
return 0;
}
49A - Sleuth | 1541A - Pretty Permutations |
1632C - Strange Test | 673A - Bear and Game |
276A - Lunch Rush | 1205A - Almost Equal |
1020B - Badge | 1353A - Most Unstable Array |
770A - New Password | 1646B - Quality vs Quantity |
80A - Panoramix's Prediction | 1354B - Ternary String |
122B - Lucky Substring | 266B - Queue at the School |
1490A - Dense Array | 1650B - DIV + MOD |
1549B - Gregor and the Pawn Game | 553A - Kyoya and Colored Balls |
1364A - XXXXX | 1499B - Binary Removals |
1569C - Jury Meeting | 108A - Palindromic Times |
46A - Ball Game | 114A - Cifera |
776A - A Serial Killer | 25B - Phone numbers |
1633C - Kill the Monster | 1611A - Make Even |
1030B - Vasya and Cornfield | 1631A - Min Max Swap |