javaleetcode914.卡牌分组

Posted 青春无敌美少

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaleetcode914.卡牌分组相关的知识,希望对你有一定的参考价值。

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<deck.length;i++)
            nums[deck[i]]++;
        
        Integer g=null;
        for(int i=0;i<nums.length;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));
    


以上是关于javaleetcode914.卡牌分组的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Algorithm 914. 卡牌分组

LeetCode Algorithm 914. 卡牌分组

LeetCode Algorithm 914. 卡牌分组

leetcode 记录

卡牌分组

卡牌分组([AtCoder ARC073]Ball Coloring)