leecode如何实现卡牌分组功能
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家分享的是有关leecode如何实现卡牌分组功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。914. 卡牌分组https://leetcode-cn.com/
千家信息网最后更新 2026年11月02日leecode如何实现卡牌分组功能
这篇文章给大家分享的是有关leecode如何实现卡牌分组功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
914. 卡牌分组
https://leetcode-cn.com/problems/x-of-a-kind-in-a-deck-of-cards/
给定一副牌,每张牌上都写着一个整数。
此时,你需要选定一个数字 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 <= 100000 <= deck[i] < 10000
思路:
如果每个元素的次数相等时,满足要求
如果每个元素的次数不相等时,找元素个数的最小公倍数是否存在
class Solution: def hasGroupsSizeX(self, deck: List[int]) -> bool: if deck is None or len(deck) < 2: return False deck_dict = {} # 用来存放元素及其个数 for i in deck: deck_dict[i] = deck_dict[i]+1 if i in deck_dict else 1 count = list(deck_dict.values()) # 每个元素的次数列表 min_count = min(count) # 从中找到最小的元素个数 if len(set(count)) == 1: return True else: for X in range(2, min_count+1): # 从2开始的公约数,不能是以最小元素个数 succes = 1 # 成功的标志 for c in count: if c % X != 0: succes = 0 break if succes == 1: return True return False感谢各位的阅读!关于"leecode如何实现卡牌分组功能"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
分组
元素
示例
解释
输入
输出
个数
可行
最小
更多
次数
功能
内容
整数
篇文章
不错
实用
相同
成功
从中
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技股互联网
A股互联网金融科技公司
互联网科技的
互联网科技革命
朗涯互联网科技
天下捷融互联网科技
苏州大垚互联网科技
四个字互联网科技公司取名
佳云科技和互联网广告
玉溪互联网科技怎么选
广州市恰铎互联网科技有限公司
民营互联网公司国防科技
四川慕妮娅互联网科技有限公司
朱啸虎曾投资哪些互联网科技企业
互联网科技圈年度人物
互联网企业科技类企业如何做账
互联网高科技行业有哪些企业
互联网对科技影响
互联网的黑科技实验室
互联网科技创业有什么好项目
耶加雪菲
互联网与未来科技
北京禾田雨橡互联网科技
火传媒上海互联网科技
企晟互联网信息科技有限公司
第三届互联网大会安防黑科技
互联网科技大会大佬
互联网的黑科技实验室
每日互联网科技新闻
互联网 科技节活动 微视频大赛