Distribute Candies
题目规定了,两个人拿一样多的糖,首先这一条就已经限制了,即使有n种糖,一个人最多也就能拿n/2种,也就是说,如果糖的种类数超过n/2种,那我可以尽量都分配给一个人更多的种类,但再怎么尽量分,也就最多拿n/2种了,那如果种类不及n/2种呢?那更简单了,我还是尽量把所有种类的糖都给一个人,那她能拿到的糖的种类数就是当前糖的总的种类数了
class Solution(object):
def distributeCandies(self, candies):
"""
:type candies: List[int]
:rtype: int
"""
n = len(candies)
count = collections.Counter(candies)
kind = len(count.keys())
return min(n / 2, kind)
上面是清晰版
class Solution(object):
def distributeCandies(self, candies):
"""
:type candies: List[int]
:rtype: int
"""
return min(len(candies) / 2, len(set(candies)))