[Bouton d'alimentation - petite pratique quotidienne] 1103. minute bonbons II (python)

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

 

Publié 44 articles originaux · louange gagné 5 · Vues 4474

Je suppose que tu aimes

Origine blog.csdn.net/ljb0077/article/details/104672437
conseillé
Classement