C
C/C++ | LeetCode
@easy_c_plus_task3.3K подп.
240просмотров
7.3%от подписчиков
20 марта 2026 г.
statsScore: 264
Задача: 914. X of a Kind in a Deck of Cards Сложность: easy Вам дан целочисленный массив deck, где deck[i] - число, написанное на i-й карте. Разделите карты на одну или несколько групп так, чтобы: в каждой группе было ровно x карт, где x > 1, и на всех картах в одной группе было написано одно и то же целое число. Верните true, если такое разделение возможно, или false в противном случае. Пример: Input: deck = [1,2,3,4,4,3,2,1] Output: true 👨‍💻 Алгоритм: 1⃣Создать словарь для подсчета частоты каждого числа в массиве deck. 2⃣Найти наибольший общий делитель (НОД) всех частот. 3⃣Проверить, больше ли НОД 1, чтобы определить, можно ли разделить карты на группы. 😎 Решение: class Solution { public: bool hasGroupsSizeX(vector<int>& deck) { unordered_map<int, int> count; for (int num : deck) { count[num]++; } int g = 0; for (auto& [_, freq] : count) { g = gcd(g, freq); } return g > 1; } private: int gcd(int a, int b) { while (b != 0) { int temp = a % b; a = b; b = temp; } return a; } }; Ставь 👍 и забирай 📚 Базу знаний
240
просмотров
1207
символов
Да
эмодзи
Нет
медиа

Другие посты @easy_c_plus_task

Все посты канала →
Задача: 914. X of a Kind in a Deck of Cards Сложность: easy — @easy_c_plus_task | PostSniper