可以使用集合(set
)来统计不同种类的糖果数量,并与 Alice 能吃的最大糖果数量 n/2
进行比较,取二者的较小值作为答案。
代码实现(Python)
def maxCandyTypes(candyType):
return min(len(set(candyType)), len(candyType) // 2)
# 示例
candyType = [1, 1, 2, 2, 3, 3]
print(maxCandyTypes(candyType)) # 输出: 3
candyType = [1, 1, 2, 3]
print(maxCandyTypes(candyType)) # 输出: 2
思路解析:
- 计算不同糖果种类数:使用
set(candyType)
统计不同种类的糖果数。 - 计算 Alice 能吃的糖果上限:Alice 最多吃
n/2
枚糖果,即len(candyType) // 2
。 - 取最小值:Alice 能吃的最大种类数是
min(不同种类数, n/2)
。
这样可以确保 Alice 在遵循医生建议的情况下,能吃到最多不同种类的糖。