LeetCode - 575. Distribute Candies

本文介绍了一个简单的算法问题——糖果分配问题。题目要求将不同种类的糖果平均分给两个人,并求妹妹能得到的最大种类数。通过计算不同糖果种类的数量并比较数组长度的一半来解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接:575. Distribute Candies


题目大意:给你一个长度为偶数的整数数组,这个数组中的不同的数字代表着不同种类的糖果。每种数字代表一个相应的糖果。现在把这些糖果平均分给哥哥和妹妹,返回妹妹能得到的最大种类的糖果数量(也就是不同数字最多的一种分类方式下的那个最大值)


这道题目思路也很简单,假设糖果总数为n,假设糖果种类大于n/2,这样妹妹最多得到n/2种,如果糖果种类小于n/2,这样妹妹得到的最大值就是糖果的种类数目。


def distributeCandies(self, candies):
    l = len(set(candies))
    if l <= (len(candies) // 2):
        return l
    else:
        return (len(candies) // 2)

一行代码的解法:

def distributeCandies(self, candies):
    return min(len(candies) // 2, len(set(candies)))

尽管题目明确了数组长度是偶数,但是还是建议大家使用//整除。

以上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值