哇,今天又没有认真看题,导致浪费时间,以后要好好看题啊!
接替思路什么的都在注释里面写着,直接看就行。
package LeetCode.FiveHundredOneToOneThousand;
public class NinetyHundredAndTenFour {
public boolean hasGroupsSizeX(int[] deck) {
int len = deck.length;
//当len小于2时候必定是false
if (len < 2) return false;
//找成对的数,将每个数进行统计,然后辗转相除,如果有相同的公约数则说明可以组成X组
// 挨个遍历,进行统计
int[] sum = new int[10000];
for (int i : deck)
sum[i]++;
//求每个数的最大公约数
int x = 0;
for (int temp : sum){
if (temp > 0){
x = gcd(x,temp);
if (x == 1)
return false;
}
}
return x >= 2;
}
private int gcd(int a, int b){
return b == 0 ? a : gcd(b, a % b);
}
}