专栏首页AI科技时讯leecode每日一题:914. 卡牌分组

leecode每日一题:914. 卡牌分组

leetcode 每日一题

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 <= 10000
0 <= 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 

本文分享自微信公众号 - AI科技时讯(aiblog_research),作者:海棠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 老旧黑白片修复机——使用卷积神经网络图像自动着色实战(原文附PyTorch代码)

    人工智能和深度学习技术逐渐在各行各业中发挥着作用,尤其是在计算机视觉领域,深度学习就像继承了某些上帝的功能,无所不能,令人叹为观止。照片承载了很多人在某个时刻的...

    用户3578099
  • 如何使用python处理稀疏矩阵

    大多数机器学习从业者习惯于在将数据输入机器学习算法之前采用其数据集的矩阵表示形式。矩阵是一种理想的形式,通常用行表示数据集实例,用列表示要素。

    用户3578099
  • PNN:Product-based Neural Networks for User Response Prediction

    现在推荐系统,网络搜索和在线广告的数据大多是分类的,并包含多个字段,有一个典型的方法将他们转化成高维稀疏二进制特征表示就是通过one-hot编码。对于这些高维稀...

    用户3578099
  • 【AI让芯片业洗牌】苹果、微软和谷歌挤入赛道,英特尔、英伟达、高通、AMD几家欢乐几家愁

    【新智元导读】人工智能、大数据和云共同带来的新的计算模式和任务需求下,半导体行业正在面临重新洗牌,许多科技巨头都将面临冲击。AI推动下,苹果、微软和谷歌都在开发...

    新智元
  • scss支持的嵌套css规则

    id为content的div下面,有两个子节点,article和aside,其中article子节点下面又包含两个子节点h1和p.

    Jerry Wang
  • WebSocket三问—腾讯三问

    WebSocket作为应用层的全双工通信协议,也是物联网情境下经常用到的协议,今天就来了解下WebSocket。

    码上积木
  • 访问WEB-INF目录中的JSP文件

    转自:http://blog.csdn.net/eidolon8/article/details/7050114

    大道七哥
  • 详解Android获取所有依赖库的几种方式

    当项目越来越大的时候,依赖的库也越来越多,再加上aar的传递依赖,导致dependency的急速膨胀。我们可以通过如下几种方式,查看项目依赖的所有库(包含直接依...

    砸漏
  • CVE-2017-5123 漏洞利用全攻略

    原文:https://salls.github.io/Linux-Kernel-CVE-2017-5123/

    Seebug漏洞平台
  • 谷歌或将推出一款基于AI的健身教练Google Coach

    此前有报道称,苹果可能正在开发一款用于健康数据分析的协处理器,而目前有消息指出,谷歌的一款名为“Google Coach”的产品由AI提供动力。

    AiTechYun

扫码关注云+社区

领取腾讯云代金券