例1:
入力:g = [1,2,3]、s = [1,1]
出力:1
説明:
3人の子供と2人のビスケットがあります.3人の子供の食欲値は1、2、3です。
小さなビスケットは2つありますが、サイズが1なので、食欲が1の子供しか満足できません。
したがって、1を出力する必要があります。
例2:
入力:g = [1,2]、s = [1,2,3]
出力:2
説明:
2人の子供と3人のビスケットがあり、2人の子供の食欲値はそれぞれ1,2です。
あなたが持っているクッキーの数とサイズは、すべての子供たちを満足させるのに十分です。
したがって、2を出力する必要があります。
まず、2つのリストを並べ替えます。
配布の原則は、小さいものを小さいものに、大きいものを大きいものに与えることです。
正確には、子供のニーズを満たす最小のものを選択します。残りのビスケットは毎回。
子供が満足するたびに、子供が1人追加されます。
最後に、残りのビスケットが子供のニーズを満たせない場合は、子供
に戻って、子供
の数を返します。
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)