leetcode 455. Algorithme gourmand pour la distribution de cookies

Exemple 1:

Entrée: g = [1,2,3], s = [1,1]
Sortie: 1
Explication:
Vous avez trois enfants et deux biscuits Les valeurs d'appétit des trois enfants sont: 1, 2, 3.
Bien que vous ayez deux petits biscuits, puisque leur taille est de 1, vous ne pouvez satisfaire que l'enfant dont l'appétit est de 1.
Vous devez donc sortir 1.

Exemple 2:

Entrée: g = [1,2], s = [1,2,3]
Sortie: 2
Explication:
Vous avez deux enfants et trois biscuits, et les valeurs d'appétit des deux enfants sont respectivement de 1,2.
Le nombre et la taille des cookies dont vous disposez sont suffisants pour satisfaire tous les enfants.
Vous devriez donc sortir 2.

Tout d'abord, triez les deux listes.
Le principe de répartition est que la petite est donnée à la petite et la grande est donnée à la grande. Pour être
précis, la plus petite qui satisfait les besoins de l'enfant est choisie parmi biscuits restants à chaque fois. Chaque fois
qu'un enfant est satisfait, un enfant est ajouté.
Enfin, si les biscuits restants ne peuvent pas répondre aux besoins de l'enfant
, retourner à l'enfant
et renvoyer le nombre d'enfants len (s)

class Solution:
    def findContentChildren(self, g: List[int], s: List[int]) -> int:
        if len(s) == 0 or len(g) == 0:
            return 0
        g.sort()
        s.sort()
        i = 0
        j = 0
        kid = 0
        while i < len(g):
            while j < len(s) and g[i] > s[j]:
                    j += 1
            if j >= len(s):
                return kid
            i += 1
            j += 1     
            kid += 1               
        return len(g)

Je suppose que tu aimes

Origine blog.csdn.net/weixin_50791900/article/details/111678113
conseillé
Classement