小朋友分饼干

题目:将一些size的饼干分给一些小朋友,每个小朋友有一个贪心值,如果小朋友得到的饼干的size大于贪心值,则小朋友会开心,求这些饼干最多能使多少小朋友开心

输入:sizes = [1,2,3], greedy = [1,1,1,4]

输出:3

思路:贪心算法,将贪婪程度和饼干size从大到小排列,先选择最贪婪的小朋友,看是否能满足

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class :
def cookies(self, sizes, greedy):

sizes.sort(reverse=True)
greedy.sort(reverse=True)
res = 0
# 先看最大的饼干能不能满足最贪婪的小朋友
for i in range(len(sizes)):
for j in range(len(greedy)):
if sizes[i] >= greedy[j]:
res += 1
break
return res

# 例子
s = [1, 2, 3]
g = [1, 1, 1, 4]
print(Solution().cookies(sizes=s, greedy=g))