栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【java】leetcode914.卡牌分组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【java】leetcode914.卡牌分组

leetcode914.卡牌分组


解题思路:

这个题最大的一个误区在于,相同数字不一定放在同一组,可以分开放在不同的组里。
如:[1,1,1,1] [1,1,1,1] ,这种情况是允许的。
首先先将deck数组中出现过的的数字个数存储到nums数组中,给定一个 Integer g 代表nums数字中各个数字公共的最大公倍数。最后根据最大公倍数 g 的情况分别判断。

实现代码:
class Solution {
    public boolean hasGroupsSizeX(int[] deck) {
        int[] nums=new int[10000];
        for(int i=0;i
            nums[deck[i]]++;
        }
        Integer g=null;
        for(int i=0;i
            if(nums[i]!=0&&g!=null){
                g=gcd(nums[i],g);
            }
            else if(nums[i]!=0&&g==null){
                g=nums[i];
            }
        }
        return g==null?false:g>1;
    }
    public static int gcd(int a,int b){
        return b==0?a:gcd(b,(a%b));
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/959301.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号