简单模拟
class Solution:
def distributeCandies(self, candies: int, num_people: int) -> List[int]:
# 当前编号
index=0
# 当前发放糖果的数量
num=1
# 记录得到的糖果数
lst=[0 for i in range(num_people)]
while candies:
if candies-num <=0:
lst[index]+=candies
break
else:
candies-=num
lst[index]+=num
num+=1
index=(index+1)%num_people
return lst
附上官方很良心的题解,这题还有数学解法
https://leetcode-cn.com/problems/distribute-candies-to-people/solution/fen-tang-guo-ii-by-leetcode-solution/
class Solution:
def distributeCandies(self, candies: int, num_people: int) -> List[int]:
ans = [0] * num_people
i = 0
while candies != 0:
ans[i % num_people] += min(i + 1, candies)
candies -= min(i + 1, candies)
i += 1
return ans