题目:
给你两个正整数 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
提交通过: