题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个数组(糖果)和一个数值(孩子数量),要求按照一定规则分配糖果(这个规则直接看原题吧),求能给每个孩子分配的最大糖果数是多少。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
def maximumCandies(self, candies: List[int], k: int) -> int:
left, right = 0, max(candies)+1
while left+1 < right:
mid = (left+right) // 2
children = sum(num//mid for num in candies)
# print(f"{mid} {children}")
if children >= k:
left = mid
else:
right = mid
return left