给定一副牌,每张牌上都写着一个整数。

此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:

每组都有 X 张牌。
组内所有的牌上都写着相同的整数。
仅当你可选的 X >= 2 时返回 true。

示例 1:

输入:[1,2,3,4,4,3,2,1]
输出:true
解释:可行的分组是 [1,1],[2,2],[3,3],[4,4]
示例 2:

输入:[1,1,1,2,2,2,3,3]
输出:false
解释:没有满足要求的分组。
示例 3:

输入:[1]
输出:false
解释:没有满足要求的分组。
示例 4:

输入:[1,1]
输出:true
解释:可行的分组是 [1,1]
示例 5:

输入:[1,1,2,2,2,2]
输出:true
解释:可行的分组是 [1,1],[2,2],[2,2]

提示:

1 <= deck.length <= 10000
0 <= deck[i] < 10000

思路:思考后得出结论,每个数字出现的次数,如果有一个总的最大公约数,就可行。

比如1出现了2次,2出现了4次,3出现了8次,此用例就是true。

另外注意到deck[i]的范围,明显用桶记录更好。

class Solution {public boolean hasGroupsSizeX(int[] deck) {int[] count = new int[10000];for (int c: deck) count[c]++;int g = -1;for (int i = 0; i < 10000; ++i)if (count[i] > 0) {if (g == -1) g = count[i];else g = gcd(g, count[i]);}return g >= 2;}public int gcd(int x, int y) {return x == 0 ? y : gcd(y%x, x);}
}

leetcode914. 卡牌分组相关推荐

  1. 伍六七带你学算法 入门篇-卡牌分组

    力扣-914. 卡牌分组 难度-简单 这是一道非常有趣的题,提交通过率令人深思 ,思考它是不是一道简单的题- 开始正题: 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以 ...

  2. LeetCode题组:第914题-卡牌分组

    题目:卡牌分组 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可 ...

  3. LeetCode 914. 卡牌分组

    914. 卡牌分组 思路:统计个数,然后求最小公约数 class Solution { public:bool hasGroupsSizeX(vector<int>& deck) ...

  4. Leetcode每日一题(914. 卡牌分组)

    914. 卡牌分组 题目: 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数 ...

  5. js + leetcode刷题:No.914 卡牌分组

    思路:计数:求最大公约数,与2比较 题目: 卡牌分组 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内 ...

  6. 力扣:914. 卡牌分组 题解(Java)

    题目地址:卡牌分组 题目描述: 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的 ...

  7. 数据结构与算法之数组: Leetcode 914. 卡牌分组 (Typescript版)

    卡牌分组 https://leetcode.cn/problems/x-of-a-kind-in-a-deck-of-cards/ 描述 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 ...

  8. LeetCode简单题之卡牌分组

    题目 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 X ...

  9. python【力扣LeetCode算法题库】914. 卡牌分组(reduce collections.Counter)

    给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 X > ...

最新文章

  1. 微软2014校园招聘笔试试题
  2. java方法的参数_Java方法参数
  3. SQL注入-SQL注入的WAF绕过(十六)
  4. 深入理解 KVC\KVO 实现机制 — KVC
  5. Android 学习笔记 databinding简单使用:使用databinding在listview加入不同类型的view
  6. Android面经分享,失业两个月,五一节前拿到offer
  7. python random_Python random() 函数
  8. 教务管理系统C++实现
  9. linux hid 输入设备 在window上需要额外驱动?,什么是HID兼容设备?Win10缺少HID兼容的触摸屏驱动咋办?...
  10. C++中的gotoxy函数
  11. 35岁以上的大龄程序员们,后来都干什么去了?
  12. Linux下7z文件解压
  13. 如何用CSS动画特效让图片旋转起来
  14. P1234 小A的口头禅题解
  15. python视频教程哪个好-Python 基础视频教程那个好?
  16. VS中进行C#编码时智能提示由英文切换为中文
  17. 记一次线上OOM问题分析与解决,涨知识了!
  18. Preparing: insert into user(uuid,username,gender,age,phone,address) values(?,?,?,?,?,?,?)
  19. mx250是什么_分析mx250显卡什么级别
  20. c语言乒乓球比赛相关的拓展程序,乒乓球编排软件.pdf

热门文章

  1. sql date类型_共享单车数据分析的SQL数据库设计
  2. mysql事务所_mysql事务
  3. modem建链过程详述
  4. c语言中vector函数大全,vector :: empty()函数,以及C ++ STL中的示例
  5. python归一化 增大差异_Python逻辑回归模型原理及实际案例应用
  6. java8 list 去重_Java8-Stream在集合中的8种应用案例
  7. 苹果怎么付费购买内存_【苹果手机多长时间清理一次内存,怎么清理?】
  8. 【转】[完全免费] 在线UML Sequence Diagram 时序图工具 - 教程第3部分
  9. 【转】3.6(译)构建Async同步基元,Part 6 AsyncLock
  10. LeetCode每日打卡 - 反转每对括号间的子串