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