题目描述

给定一副牌,每张牌上都写着一个整数。
此时,你需要选定一个数字 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

解题思路

第一层:用一个数组count记录每个整数出现的次数
第二层:写个gcd函数找出各整数出现次数的最大公因数

代码

int gcd(int a, int b){if(b==0)return a;else return gcd(b,a%b);
}bool hasGroupsSizeX(int* deck, int deckSize){int max = 0;int ret = 0;for(int l=0;l<deckSize;l++){if(deck[l]>max)max=deck[l];}//int count[max]={0};int *count=(int *)malloc((max+1)*sizeof(int));memset(count,0,(max+1)*sizeof(int));for(int i=0;i<deckSize;i++){count[deck[i]]++;}for(int k=0;k<=max;k++){if(count[k]>0)ret=gcd(count[k],ret);}return ret>=2? true:false;}

链接

力扣914.卡牌分组相关推荐

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

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

  2. LeetCode 914. 卡牌分组

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

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

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

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

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

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

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

  6. LeetCode 914. 卡牌分组(最大公约数)

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

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

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

  8. 【Leetcode】914. 卡牌分组

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

  9. 2021-12-8 Leetcode 914.卡牌分组

    class Solution {public:bool hasGroupsSizeX(vector<int>& deck) {map<int,int> hash_map ...

最新文章

  1. 你想要的宏基因组-微生物组知识全在这(181001)
  2. activity属性设置大全
  3. C#抽象工厂模式的几种实现方法及比较
  4. contos LINUX搭建LAMP笔记
  5. git :设置 object-c 的忽略文件
  6. cocos2dx中加入unzip
  7. VisualSVN Server 修改用户密码
  8. 【scratch案例教学】Scratch弹力球小游戏 scratch编程案例教学 少儿编程教案
  9. ios 音频录音、上传至7牛、播放及其与android兼容的问题
  10. 谈谈移动硬盘或者手机连接到PC提示“无法访问,拒绝访问”或“您没有访问该设备的权限”的解决办法
  11. idea运行web项目光标乱跳
  12. Python爬取百度文库的内容输出
  13. Instant及LocalDateTime等使用方法
  14. excel条件格式使用详细步骤
  15. XP系统,开机启动报NTDETECT 失败
  16. USB SS-PHY Tuning
  17. 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础
  18. SQL全方位攻略:之数据库历史、数据库基本概念和相关术语,以及常见的数据库类型介绍
  19. php 元旦祝福,元旦祝福语大全简短 简短独特
  20. java公社博客_Java面向对象开发学习笔记(一)

热门文章

  1. TPO-22 C1 Complain about a biased article
  2. .net Core 介绍
  3. hdu-2717(基础搜索bfs)
  4. delphi中Record 和Packed Record的区别
  5. Windos环境用Nginx配置反向代理和负载均衡
  6. 根据递归定义的数据表循环生成xml
  7. Android开发者指南24难点各个击破—来自androi中文翻译组
  8. 用 或 || 取代常规 if - else 结构
  9. 最大流问题 Edmonds-Karp算法
  10. (32)VHDL实现同步复位D触发器