1103. minute bonbons II: Cruncher, sous-bonbons.
Description du sujet:
Nous avons acheté des bonbons de bonbons, ils vont donner en attente n = NUM_PEOPLE deux enfants.
Un enfant à la première confiserie, les deux deuxièmes enfants, et ainsi de suite, jusqu'à ce que le dernier enfant en morceaux n de bonbons.
Ensuite, nous revenons au point de départ de l'équipe, aux premiers morceaux d'enfants de bonbons n + 1, n + 2 secondes étoiles enfant, et ainsi de suite, jusqu'à ce que le dernier enfant à 2 * n morceaux de bonbons.
Répétez le processus (et plus à chaque fois que la dernière donnée un bonbon, lorsque l'équipe est arrivée à la fin dès le début le point de départ de l'équipe à nouveau) jusqu'à ce que nous finissons tous les sous-bonbons. Notez que même si le reste est pas dans nos mains le nombre de bonbons (bonbons avant d'émettre plus d'une fois), ces bonbons seront distribués à tous les enfants actuels.
Renvoie un tableau de longueur d'NUM_PEOPLE, et pour les éléments des bonbons pour représenter le cas des bonbons distribution finale (à savoir ANS [i] représente le nombre de i-ième bonbons attribué aux enfants).
Exemple 1:
Entrée: bonbons = 7, NUM_PEOPLE = 4
Sortie: [1,2,3,1]
Explication: d'
abord, ans [0] + = 1 , la matrice devient [1,0,0,0].
Deuxièmement, ans [1] + = 2 , la matrice devient [1,2,0,0].
Troisièmement, ans [2] + = 3 , la matrice devient [1,2,3,0].
Quatrièmement, ans [3] + = 1 ( parce que le seul bonbons), la matrice finale devient [1,2,3,1].
Exemple 2:
Entrée: bonbons = 10, 3 = NUM_PEOPLE
sortie: [5,2,3]
Explication: d'
abord, ans [0] + = 1 , la matrice devient [1,0,0].
Deuxièmement, ans [1] + = 2 , la matrice devient [1,2,0].
Troisièmement, ans [2] + = 3 , la matrice devient [2,3].
Quatrièmement, ans [0] + = 4 , la matrice finale devient [5,2,3].
Conseils:
1 <= candies <= 10^9
1 <= num_people <= 1000
Python代码实现:
class Solution:
def distributeCandies(self, candies: int, num_people: int) -> List[int]:
ans = num_people*[0] # 创建长度为num_people的空列表
j = 1
while candies!=0:
for i in range(num_people):
if candies<=j:
ans[i] += candies
candies=0
break
else:
ans[i] += j
candies = candies - j
j += 1
return ans