LeetCode 914. 卡牌分组
2020-03-27 16:06:09来源:博客园 阅读 ()
LeetCode 914. 卡牌分组
我的LeetCode:https://leetcode-cn.com/u/ituring/
我的LeetCode刷题源码[GitHub]:https://github.com/izhoujie/Algorithmcii
LeetCode 914. 卡牌分组
题目
给定一副牌,每张牌上都写着一个整数。
此时,你需要选定一个数字 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
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/x-of-a-kind-in-a-deck-of-cards
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
思路1-学会抽象题目是一个长久要锻炼的能力!
抽象题意:给一堆数,求这些数是否存在不小于1的最大公约数;
步骤:
- 统计各数出现次数;
- 逐个gcd求最大公约数,等于1的直接返回false,否则最后返回true;
总结:抽象题意是学习算法的必修技能!
算法源码示例
package leetcode;
/**
* @author ZhouJie
* @date 2020年3月27日 下午1:22:07
* @Description: 914. 卡牌分组
*
*/
public class LeetCode_0914 {
}
class Solution_0914 {
/**
* @author: ZhouJie
* @date: 2020年3月27日 下午1:23:20
* @param: @param deck
* @param: @return
* @return: boolean
* @Description: 1-题目抽象,验证所给的数是否有不小于2的最大公约数;
*
*/
public boolean hasGroupsSizeX(int[] deck) {
// 题目指定数的范围[0,10000)
int[] statistics = new int[10000];
for (int i : deck) {
statistics[i]++;
}
int num = 0;
for (int i : statistics) {
if (i > 0) {
num = gcd(i, num);
if (num == 1) {
return false;
}
}
}
return true;
}
/**
* @author: ZhouJie
* @date: 2020年3月27日 下午1:28:42
* @param: @param a
* @param: @param b
* @param: @return
* @return: int
* @Description: 求两数的最大公约数
*
*/
private int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
}
原文链接:https://www.cnblogs.com/izhoujie/p/12581046.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- LeetCode 287. 寻找重复数 2020-05-31
- LeetCode 5. 最长回文子串 2020-05-22
- LeetCode 21. 合并两个有序链表 2020-05-22
- LeetCode 面试题55 - I. 二叉树的深度 2020-05-22
- LeetCode 104. 二叉树的最大深度 2020-05-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash