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.卡牌分组的主要内容,如果未能解决你的问题,请参考以下文章