首页 > 试题广场 >

糖果分配

[编程题]糖果分配
  • 热度指数:6904 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
假设你是一位很有爱的幼儿园老师,想要给幼儿园的小朋友们一些小糖果。但是,每个孩子最多只能给一块糖果。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的糖果的最小尺寸;并且每块糖果 j ,都有一个尺寸 s。如果 sj >= g,我们可以将这个糖果 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。
注意:
你可以假设胃口值为正。
一个小朋友最多只能拥有一块糖果。


输入描述:
第一行输入每个孩子的胃口值

第二行输入每个糖果的尺寸

孩子数和糖果数不超过1000


输出描述:
能满足孩子数量的最大值
示例1

输入

1 2 3
1 1

输出

1
头像 牛客题解官
发表于 2020-06-04 15:53:52
精华题解 题目难度:二星 考察点:贪心 方法:贪心 1.分析: 对于这个题来说,我们要做的是尽可能满足越多数量的孩子,那么我们采取一个贪心的策略,即尽可能的先满足胃口较小的孩子。那么现在的问题就是如何分配糖果才能使得在贪心条件下满足条件的孩子数量最多呢?其实我们只要将读入进 展开全文
头像 王清楚
发表于 2020-04-25 12:47:38
题目描述 假设你是一位很有爱的幼儿园老师,想要给幼儿园的小朋友们一些小糖果。但是,每个孩子最多只能给一块糖果。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的糖果的最小尺寸;并且每块糖果 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个糖果 j 分配给孩子 展开全文
头像 cchangcs
发表于 2019-07-25 10:12:16
解题思路 使用双指针,对于每个胃口值,搜索能够满足其的最小糖果尺寸。 完整代码 gi = list(map(int, input().split())) sj = list(map(int, input().split())) gi.sort() sj.sort() result 展开全文
头像 laglangyue
发表于 2020-06-02 17:20:56
流式编程:排序+双指针,依次发糖果 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner s 展开全文
头像 codewind
发表于 2020-05-27 12:03:21
import java.util.Arrays; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner( 展开全文