In a deck of cards, each card has an integer written on it.
Return true if and only if you can choose X >= 2 such that it is possible to split the entire deck into 1 or more groups of cards, where:
Each group has exactly X cards.
All the cards in each group have the same integer.
Example 1:
Input: deck = [1,2,3,4,4,3,2,1]
Output: true
Explanation: Possible partition [1,1],[2,2],[3,3],[4,4].
Example 2:
Input: deck = [1,1,1,2,2,2,3,3]
Output: false´
Explanation: No possible partition.
Example 3:
Input: deck = [1]
Output: false
Explanation: No possible partition.
Example 4:
Input: deck = [1,1]
Output: true
Explanation: Possible partition [1,1].
Example 5:
Input: deck = [1,1,2,2,2,2]
Output: true
Explanation: Possible partition [1,1],[2,2],[2,2].
Constraints:
1 <= deck.length <= 10^4
0 <= deck[i] < 10^4
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/x-of-a-kind-in-a-deck-of-cards
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
int cmpfunc (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
bool hasGroupsSizeX(int* deck, int deckSize){
bool res=false;
int i, X, num;
if(deckSize == 1)
return false;
qsort(deck, deckSize, sizeof(int), cmpfunc);
for(X=1; X<deckSize; X++){
if(deckSize%X==0){
num = deckSize/X;
for(i=0; i<deckSize; i+=num){
if(deck[i]==deck[i+num-1]){
res = true;
}else{
res = false;
break;
}
}
if(res)
return res;
}
}
return res;
}
作者:voyagerhui
链接:https://leetcode-cn.com/problems/x-of-a-kind-in-a-deck-of-cards/solution/cyu-yan-guan-fang-ti-jie-bao-li-fang-fa-by-voyager/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。