leetcode 455. Algoritmo ganancioso para distribuição de cookies

Exemplo 1:

Entrada: g = [1,2,3], s = [1,1]
Resultado: 1
Explicação:
Você tem três filhos e dois biscoitos. Os valores de apetite dos três filhos são: 1, 2, 3.
Embora você tenha dois biscoitos pequenos, como o tamanho deles é 1, você só pode satisfazer a criança cujo apetite é 1.
Portanto, você deve imprimir 1.

Exemplo 2:

Entrada: g = [1,2], s = [1,2,3]
Saída: 2
Explicação:
Você tem dois filhos e três biscoitos, e os valores de apetite dos dois filhos são 1,2, respectivamente.
A quantidade e o tamanho dos cookies que você possui são suficientes para satisfazer todas as crianças.
Portanto, você deve imprimir 2.

Primeiro, classifique as duas listas.
O princípio de distribuição é que a pequena é dada à pequena e a grande é dada à grande. Para ser mais
preciso, a menor que satisfaça as necessidades da criança é selecionada a partir do sobras de biscoitos todas as vezes. Cada vez que
uma criança fica satisfeita, uma criança é adicionada.
Finalmente, se os biscoitos restantes não atenderem às necessidades da criança
, volte para a criança
e devolva o número de crianças 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)

Acho que você gosta

Origin blog.csdn.net/weixin_50791900/article/details/111678113
Recomendado
Clasificación