力扣2928. 给小朋友们分糖果 I

题目:

给你两个正整数 n 和 limit 。

请你将 n 颗糖果分给 3 位小朋友,确保没有任何小朋友得到超过 limit 颗糖果,请你返回满足此条件下的 总方案数 。

提示:

  • 1 <= n <= 50
  • 1 <= limit <= 50

思路:

枚举法——第一个小孩分的糖果设为i,第二个小孩分的糖果设为j,第三个小孩分的即为(n-i-j)。其中,i和j的取值范围都是[0,limit],若(n-i-j)也处于这个取值范围内,则说明这种分配方式符合条件。穷举所有分配方式,得到总的方案数即可。代码如下:

class Solution:
    def distributeCandies(self, n: int, limit: int) -> int:
        count = 0
        for i in range(0, limit+1):
            if n - i > limit * 2:
                continue
            for j in range(0, limit+1):
                k = n - i - j
                if 0 <= k <= limit:
                    count += 1
        return count

提交通过:

 

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值