Leetcode【1103】 Distribute Candies to People(Python版)

本文介绍了一种将糖果公平分配给一群孩子的算法实现。使用Python编程语言,通过不断递增的糖果数量进行分配,直到糖果用完。算法确保了每个人都能轮流得到糖果,并在糖果不足时按剩余数量分配。

返回的是一个固定长度的列表,在python中,无法通过像java的初始化数组来实现,那么就必须赋值

ans = [0] * num_people

然后定义一个变量give表示每次给的糖果数,这个数每次都会+1

把give和总人数取余,就是索引,因为要不停的遍历每个孩子,假设4个孩子,索引就是0,1,2,3,0,1,2,3,......

class Solution:
    def distributeCandies(self, candies: int, num_people: int):
        ans = [0] * num_people
        give = 0
        while candies > 0:
            ans[give % num_people] += min(give + 1, candies)
            give += 1
            candies -= give
        return ans


if __name__ == "__main__":
    print(Solution().distributeCandies(7, 4))

 

 

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值