914. 卡牌分组 - 力扣(LeetCode)https://leetcode.cn/problems/x-of-a-kind-in-a-deck-of-cards/
简单题
坑有点多
思路
我们从 2 开始,从小到大枚举 i。
由于每一组都有i 张牌,那么i 必须是卡牌总数 N 的因数。
其次,对于写着数字 num的牌,如果有count_num张,由于题目要求「组内所有的牌上都写着相同的整数」,那么i必然也是count_num的因数。
class Solution:
def hasGroupsSizeX(self, deck):
dec={}
N=len(deck)
for i in deck:
dec[i]=0
for i in deck:
dec[i]=dec[i]+1
temp=float("inf")
for i in deck:
if temp>dec[i]:
temp=dec[i]
if temp==1:
return False
else:
for i in range(2,N+1):
if N%i==0:#这个是每个组的个数肯定是卡牌总数的因数
flag=1
for j in dec:
if(dec[j]%i):
flag=0
break;
if flag:
return True
return False
第二个方法,求最大公约数,有空补