辗转相除法
class Solution {
public:
bool hasGroupsSizeX(vector<int>& deck) {
map<int,int>mp;
int Min = deck.size();
for(int i = 0;i<deck.size();i++)
{
if(!mp.count(deck[i]))
{
mp[deck[i]] = 1;
}
else
{
mp[deck[i]]++;
}
}
for(auto it = mp.begin();it!=mp.end();it++) Min = min(Min,it->second);
for(auto it = mp.begin();it!=mp.end();it++)
{
if( gcd(it->second,Min) == 1) return false;
}
return 1;
}
int gcd(int a,int b)
{
if(a<b) swap(a,b);
while(a%b)
{
int r = a%b;
a = b;
b = r;
}
return b;
}
};
天啊!我对面的大哥一直在啃手指!
呕