leetcode914. 卡牌分组
给定一副牌,每张牌上都写着一个整数。
此时,你需要选定一个数字 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. 卡牌分组相关推荐
- 伍六七带你学算法 入门篇-卡牌分组
力扣-914. 卡牌分组 难度-简单 这是一道非常有趣的题,提交通过率令人深思 ,思考它是不是一道简单的题- 开始正题: 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以 ...
- LeetCode题组:第914题-卡牌分组
题目:卡牌分组 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可 ...
- LeetCode 914. 卡牌分组
914. 卡牌分组 思路:统计个数,然后求最小公约数 class Solution { public:bool hasGroupsSizeX(vector<int>& deck) ...
- Leetcode每日一题(914. 卡牌分组)
914. 卡牌分组 题目: 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数 ...
- js + leetcode刷题:No.914 卡牌分组
思路:计数:求最大公约数,与2比较 题目: 卡牌分组 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内 ...
- 力扣:914. 卡牌分组 题解(Java)
题目地址:卡牌分组 题目描述: 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的 ...
- 数据结构与算法之数组: Leetcode 914. 卡牌分组 (Typescript版)
卡牌分组 https://leetcode.cn/problems/x-of-a-kind-in-a-deck-of-cards/ 描述 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 ...
- LeetCode简单题之卡牌分组
题目 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 X ...
- python【力扣LeetCode算法题库】914. 卡牌分组(reduce collections.Counter)
给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 X > ...
最新文章
- 微软2014校园招聘笔试试题
- java方法的参数_Java方法参数
- SQL注入-SQL注入的WAF绕过(十六)
- 深入理解 KVC\KVO 实现机制 — KVC
- Android 学习笔记 databinding简单使用:使用databinding在listview加入不同类型的view
- Android面经分享,失业两个月,五一节前拿到offer
- python random_Python random() 函数
- 教务管理系统C++实现
- linux hid 输入设备 在window上需要额外驱动?,什么是HID兼容设备?Win10缺少HID兼容的触摸屏驱动咋办?...
- C++中的gotoxy函数
- 35岁以上的大龄程序员们,后来都干什么去了?
- Linux下7z文件解压
- 如何用CSS动画特效让图片旋转起来
- P1234 小A的口头禅题解
- python视频教程哪个好-Python 基础视频教程那个好?
- VS中进行C#编码时智能提示由英文切换为中文
- 记一次线上OOM问题分析与解决,涨知识了!
- Preparing: insert into user(uuid,username,gender,age,phone,address) values(?,?,?,?,?,?,?)
- mx250是什么_分析mx250显卡什么级别
- c语言乒乓球比赛相关的拓展程序,乒乓球编排软件.pdf
热门文章
- sql date类型_共享单车数据分析的SQL数据库设计
- mysql事务所_mysql事务
- modem建链过程详述
- c语言中vector函数大全,vector :: empty()函数,以及C ++ STL中的示例
- python归一化 增大差异_Python逻辑回归模型原理及实际案例应用
- java8 list 去重_Java8-Stream在集合中的8种应用案例
- 苹果怎么付费购买内存_【苹果手机多长时间清理一次内存,怎么清理?】
- 【转】[完全免费] 在线UML Sequence Diagram 时序图工具 - 教程第3部分
- 【转】3.6(译)构建Async同步基元,Part 6 AsyncLock
- LeetCode每日打卡 - 反转每对括号间的子串