单点时限: 2.0 sec
内存限制: 512 MB
圣诞节要到了, 假设你是一位很棒的老师, 想要给你的学生们发一些糖果. 但是, 每个学生最多只能给一袋糖果.
对每个学生 i
, 都有一个胃口值 g[i]
, 这是能让学生们满足胃口的糖果的最少个数; 并且每袋糖果 j
, 都有一个数量 s[j]
. 如果 s[j] >= g[i]
, 我们可以将这袋糖果 j
分配给学生 i
, 这个学生会得到满足. 你的目标是尽可能满足最多的学生, 并输出这个最大数值.
示例 1:
输入: g = [1,2,3], s = [1,1]
输出: 1
解释:你有三个学生和两袋糖果, 3个学生的胃口值分别是: 1, 2, 3.
虽然你有两袋小糖果, 由于它们的糖果个数都是1, 你只能让胃口值是1的学生满足, 也就是只能满足学生[0].
所以你应该输出1.
示例 2:
输入: g = [1, 2], s = [1, 2, 3]
输出: 2
解释:你有两个学生和三袋小糖果, 2个学生的胃口值分别是1, 2.
你拥有的糖果袋数和数量都足以让所有学生满足.
所以你应该输出2.
[1,2,3] [1,1]
1
[1,2] [1,2,3]
2
输入输出处理已为你准备好, 请书写函数体部分以完成作答.
def assignCandy(g, s) -> int:
# finish the function.
return count
g = [int(x) for x in input().strip('[]').split(',') if x]
s = [int(x) for x in input().strip('[]').split(',') if x]
print(assignCandy(g, s))
题目来源: leetcode