### Description#

Assume you are an awesome parent and want to give your children some cookies. But, you should give each child at most one cookie.

Each child `i` has a greed factor `g[i]`, which is the minimum size of a cookie that the child will be content with; and each cookie `j` has a size `s[j]`. If `s[j] >= g[i]`, we can assign the cookie `j` to the child `i`, and the child `i` will be content. Your goal is to maximize the number of your content children and output the maximum number.

### Solution#

``````class Solution:
def findContentChildren(self, g: List[int], s: List[int]) -> int:
# first we think of optimize cookie
g.sort()
s.sort()
res = 0
for i in range(len(s)):
if res < len(g) and s[i] >= g[res]:
res += 1

return res

def findContentChildren1(self, g: List[int], s: List[int]) -> int:
# feed greatest greed factor
g.sort()
s.sort()

start, count = len(s) - 1, 0
for index in range(len(g)-1, -1, -1):
if start >= 0 and g[index] <= s[start]:
start -= 1
count += 1
return count
``````