题目链接:914. 卡牌分组
Ideas
算法:最大公约数
数据结构:无
思路:统计所有牌的个数,找到最大公约数,如果最大公约数大于等于2,返回true,否则返回false。
Code
C++
class Solution {
public:
bool hasGroupsSizeX(vector<int>& deck) {
unordered_map<int, int> cnt;
for (int num : deck) {
cnt[num]++;
}
int gcd_num = cnt.begin()->second;
for (auto &iter : cnt) {
gcd_num = gcd(iter.second, gcd_num);
}
return gcd_num > 1;
}
};