讨论社区

914卡牌分组

代码

bool hasGroupsSizeX(int* deck, int deckSize) {
    int max = deck[0];
    int divisor = 0;
    for(int i=1;i<deckSize;i++){
        if(max<deck[i]){
            max=deck[i];
        }
    }
    int *countMap = (int *)malloc(sizeof(int)*(max+1));
    if(!countMap){
        exit(1);
    }
    memset(countMap,0,max+1);
    for(int count=0;count<deckSize;count++){
        countMap[deck[count]]++;
    }
    for(int findDivisor=0;findDivisor<max+1;findDivisor++){
        divisor=maxDivisor(divisor,countMap[findDivisor]);
        if(divisor==1){
            free(countMap);
            return false;
        }
    }
    free(countMap);
    return true;
}

int maxDivisor(int first,int second){
    return !second?first:maxDivisor(second,first%second);
}

测试数组

[0,0,0,0,1,1,2,2,3,3]

期望 true

实测 false

这段代码在自己linux上跑,返回是返回真的,但是答题页卡在这里报错,实在找不到是什么出问题了.

求大佬解惑,不胜感激!

0 人关注了该问题 关注

您需要登录后才可以回复