Registro de escovação Leetcode-455. Distribuição de cookies

Insira a descrição da imagem aqui

O método que eu percebi:
algoritmo guloso
primeiro biscoito tamanho e apetite GLIST slist em ordem decrescente
de cada vez, quando slist não-vazia, desde o maior slist pop em um biscoito
a cada vez, quando GLIST não vazio, o pop fora do GLIST O maior apetite
se o biscoito atual> = apetite atual
res + = 1
intervalo # altere o próximo biscoito
se o biscoito atual <apetite atual
continuar # tente o próximo apetite
retorno res

class Solution:
    def findContentChildren(self, g, s):
        if s == [] or g == []:
            return 0
        g = sorted(g, reverse = True)#[3,2,1]胃口
        s = sorted(s, reverse = True)#[1,1]饼干大小
        print(g,'胃口')
        print(s,'饼干大小')
        maxs = s[0]
        tempvalue = 0
        for i in range(len(g)):
            if  g[i] <= maxs:
                tempvalue = i
                break
        g = g[i:]
        if g == []:
            return 0
        res = 0
        tempindex = 0
        while s != []:#当饼干序列非空时,即还有饼干可测试时
            values = s.pop(0)#获取当前最大的饼干大小
            while g != []:#以下代码段中values不变
                valueg = g.pop(0)#获取当前最大胃口
                if valueg <= values:#胃口 <= 当前这块饼干的大小,即能满足这个孩子:
                    res += 1
                    break
                elif valueg > values:#胃口 > 当前饼干大小:
                    continue
                    
                

        return res

Publicado 43 artigos originais · elogiou 14 · mais de 20.000 visualizações

Acho que você gosta

Origin blog.csdn.net/weixin_41545780/article/details/105047024
Recomendado
Clasificación